]> git.rm.cloudns.org Git - xonotic/gmqcc.git/log
xonotic/gmqcc.git
12 years agoSet the full const/var qualifier; only generate warnings about unimplemented function...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 13:05:25 +0000 (14:05 +0100)]
Set the full const/var qualifier; only generate warnings about unimplemented functions if they have no qualifier at all

12 years agodon't just store a 'bool constant' in the ast/ir, store the complete qualifier: ...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 12:47:28 +0000 (13:47 +0100)]
don't just store a 'bool constant' in the ast/ir, store the complete qualifier: 'int cvq', moved CV_ defines into gmqcc.h

12 years agoRemove the 'warnreturn' parameter in some parser functions
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:37:46 +0000 (12:37 +0100)]
Remove the 'warnreturn' parameter in some parser functions

12 years agoActually generate the missing return instruction
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:35:33 +0000 (12:35 +0100)]
Actually generate the missing return instruction

12 years agoast_loop with no condition and no incrementor are 'for(;;)' and need to loop endlessl...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:28:51 +0000 (12:28 +0100)]
ast_loop with no condition and no incrementor are 'for(;;)' and need to loop endlessly instead of once...

12 years agoStill need to generate the jump...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:23:27 +0000 (12:23 +0100)]
Still need to generate the jump...

12 years agoast_ifthen will not create dead blocks anymore
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:21:10 +0000 (12:21 +0100)]
ast_ifthen will not create dead blocks anymore

12 years agoactually removing -Wmissing-return-values from parser.c and enabling the ast code...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 11:11:36 +0000 (12:11 +0100)]
actually removing -Wmissing-return-values from parser.c and enabling the ast code for it

12 years agoFix a wrong vec_remove in the tailcall pass
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:59:03 +0000 (11:59 +0100)]
Fix a wrong vec_remove in the tailcall pass

12 years agodon't use vec_size but _vec_end in _vec_remove, since using it on an empty vector...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:55:32 +0000 (11:55 +0100)]
don't use vec_size but _vec_end in _vec_remove, since using it on an empty vector is an error anyway; this causes a warning about vec_pop doing an effect-less memmove so vec_pop now doesn't use vec_remove anymore actually

12 years agoprint the number of performed optimizations after compiling
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:47:35 +0000 (11:47 +0100)]
print the number of performed optimizations after compiling

12 years agoAlso print the numeric -O flag which would enable an optimization when listing optimi...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:15:57 +0000 (11:15 +0100)]
Also print the numeric -O flag which would enable an optimization when listing optimizations via -Ohelp

12 years agoImporting tail-recursion optimization
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:12:53 +0000 (11:12 +0100)]
Importing tail-recursion optimization

12 years ago-O now, additionally to taking a number, can work like -W and -f to take an actual...
Wolfgang (Blub) Bumiller [Fri, 30 Nov 2012 10:05:58 +0000 (11:05 +0100)]
-O now, additionally to taking a number, can work like -W and -f to take an actual optimization name

12 years agomoving opts_warn and opts_werror to con.c
Wolfgang (Blub) Bumiller [Wed, 28 Nov 2012 18:18:11 +0000 (19:18 +0100)]
moving opts_warn and opts_werror to con.c

12 years agoqcvm didn't compile since moving the compile messages to con.c due to undefined refer...
Wolfgang (Blub) Bumiller [Wed, 28 Nov 2012 18:16:35 +0000 (19:16 +0100)]
qcvm didn't compile since moving the compile messages to con.c due to undefined references - fixed now

12 years agogeneric compile_error/compile_warning functions in con.c, issuing end-of-non-void...
Wolfgang (Blub) Bumiller [Mon, 26 Nov 2012 15:12:40 +0000 (16:12 +0100)]
generic compile_error/compile_warning functions in con.c, issuing end-of-non-void warning from within the ast now

12 years agoChecking in test for nested ternaries; this is more a test of the ast than the parser
Wolfgang (Blub) Bumiller [Mon, 26 Nov 2012 13:12:56 +0000 (14:12 +0100)]
Checking in test for nested ternaries; this is more a test of the ast than the parser

12 years agoFix a small typo
Wolfgang (Blub) Bumiller [Mon, 26 Nov 2012 13:05:31 +0000 (14:05 +0100)]
Fix a small typo

12 years agoRemove trailing whitespace for Blub.
Dale Weiler [Mon, 26 Nov 2012 11:12:06 +0000 (11:12 +0000)]
Remove trailing whitespace for Blub.

12 years agoopval is asserted .. need (void) to hide warning when NDEBUG
Dale Weiler [Mon, 26 Nov 2012 02:12:50 +0000 (02:12 +0000)]
opval is asserted .. need (void) to hide warning when NDEBUG

12 years agofast optimized murmur hash with crc seeding, literally zero collision, and roughly...
Dale Weiler [Mon, 26 Nov 2012 00:21:16 +0000 (00:21 +0000)]
fast optimized murmur hash with crc seeding, literally zero collision, and roughly only 52 instructions

12 years agooperator &~= must not cause the generated binstore to free the destination twice
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 23:15:07 +0000 (00:15 +0100)]
operator &~= must not cause the generated binstore to free the destination twice

12 years agoSame as earlier: remember the outgoing block of a condition in a ternary since it...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:54:15 +0000 (23:54 +0100)]
Same as earlier: remember the outgoing block of a condition in a ternary since it could be different due to shortened logic

12 years agoast_breakcont_codegen: error when a target is missing instead of segfaulting trying...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:51:39 +0000 (23:51 +0100)]
ast_breakcont_codegen: error when a target is missing instead of segfaulting trying to access it anyway

12 years agoendlessloops don't have any other block which could be a continue-target-block, so...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:50:42 +0000 (23:50 +0100)]
endlessloops don't have any other block which could be a continue-target-block, so use the body itself to not continue to NULL

12 years agoir_function_create_block now takes a lex_ctx instead of copying from the function...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:48:29 +0000 (23:48 +0100)]
ir_function_create_block now takes a lex_ctx instead of copying from the function; ast_ternary: need to remember the _end_ block of the 2 expressions because that's where the jump is actually supposed to be

12 years agodon't set the request-Lvalue flag for an array index
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:35:49 +0000 (23:35 +0100)]
don't set the request-Lvalue flag for an array index

12 years agoDon't add redeclared globals a second time
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:35:31 +0000 (23:35 +0100)]
Don't add redeclared globals a second time

12 years agomore verbose errors in the ast when an ir-create fails
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:32:00 +0000 (23:32 +0100)]
more verbose errors in the ast when an ir-create fails

12 years agoAnother case for -fassign-function-types
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:28:47 +0000 (23:28 +0100)]
Another case for -fassign-function-types

12 years agointroducing -fassign-function-types, previously guarded by std==qcc this is now the...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:27:48 +0000 (23:27 +0100)]
introducing -fassign-function-types, previously guarded by std==qcc this is now the flag to cause a warning (-Wassign-function-types) instead of an error when assigning functions of wrong types

12 years agofix a lexer error which parsed !! as one operator
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 22:24:39 +0000 (23:24 +0100)]
fix a lexer error which parsed !! as one operator

12 years ago__builtin_debug_printtype directive... helped me down tracking a bug: parsing typedef...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:57:11 +0000 (22:57 +0100)]
__builtin_debug_printtype directive... helped me down tracking a bug: parsing typedeffed types in parameter lists properly now

12 years agoOnly check the ast-type of a switch case, not if it's an ACTUAL constant, fteqcc...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:40:35 +0000 (22:40 +0100)]
Only check the ast-type of a switch case, not if it's an ACTUAL constant, fteqcc doesn't either... grrr

12 years agoactually handle unary plus...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:38:52 +0000 (22:38 +0100)]
actually handle unary plus...

12 years agoAllow float constants which start with a dot
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:35:41 +0000 (22:35 +0100)]
Allow float constants which start with a dot

12 years agoAh right, 'var' is not an actual keyword, support TOKEN_IDENT-var inside functions
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:26:28 +0000 (22:26 +0100)]
Ah right, 'var' is not an actual keyword, support TOKEN_IDENT-var inside functions

12 years agoUse the correct default cv-qualifier on locals
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:16:08 +0000 (22:16 +0100)]
Use the correct default cv-qualifier on locals

12 years agoAllow 'var' in functions... even there initialized locals seem to be constant by...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:15:08 +0000 (22:15 +0100)]
Allow 'var' in functions... even there initialized locals seem to be constant by default... laaaaaaaame

12 years agoFix the testsuite to properly error on failed loads
Dale Weiler [Sun, 25 Nov 2012 21:12:04 +0000 (21:12 +0000)]
Fix the testsuite to properly error on failed loads

12 years agohandling TOKEN_CHARCONST - -Wmultibyte-character
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:11:21 +0000 (22:11 +0100)]
handling TOKEN_CHARCONST - -Wmultibyte-character

12 years agoActually use TOKEN_CHARCONST in the lexer...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 21:04:27 +0000 (22:04 +0100)]
Actually use TOKEN_CHARCONST in the lexer...

12 years agoDon't error about creating an unreachable statement if the node we're about to genera...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:59:57 +0000 (21:59 +0100)]
Don't error about creating an unreachable statement if the node we're about to generate is an ast_label

12 years agoFilling up remaining gotos at the end of a function for when the label is defined...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:56:38 +0000 (21:56 +0100)]
Filling up remaining gotos at the end of a function for when the label is defined after the goto; erroring for missing labels

12 years agomaking goto a keyword
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:56:21 +0000 (21:56 +0100)]
making goto a keyword

12 years agoparsing goto
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:53:14 +0000 (21:53 +0100)]
parsing goto

12 years agoAdd the array tests, seem to have forgotten to add those...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:41:30 +0000 (21:41 +0100)]
Add the array tests, seem to have forgotten to add those...

12 years agoSupport codegen of ast_label and ast_goto in any order
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:40:26 +0000 (21:40 +0100)]
Support codegen of ast_label and ast_goto in any order

12 years agoast_label, and labels later used for goto
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:27:14 +0000 (21:27 +0100)]
ast_label, and labels later used for goto

12 years agotemporarily disable the 'constant' flag when parsing the initializer to avoid the...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:10:43 +0000 (21:10 +0100)]
temporarily disable the 'constant' flag when parsing the initializer to avoid the 'assigning to constant' error in a block-local constant

12 years agoAllow 'const' within function bodies
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:08:30 +0000 (21:08 +0100)]
Allow 'const' within function bodies

12 years agoFix linecounting mistake in try_digraph
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 20:07:03 +0000 (21:07 +0100)]
Fix linecounting mistake in try_digraph

12 years agoSet the output to NULL always before parsing stuff
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 19:48:06 +0000 (20:48 +0100)]
Set the output to NULL always before parsing stuff

12 years agofix wrong parameter order in parse_variable calls, dammit I hate how 'bool' and ...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 19:29:12 +0000 (20:29 +0100)]
fix wrong parameter order in parse_variable calls, dammit I hate how 'bool' and 'int' are implicitly convertible here

12 years agomore on CV_CONST/CV_VAR, initializers to check 'constant' not just 'hasvalue'
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 19:25:39 +0000 (20:25 +0100)]
more on CV_CONST/CV_VAR, initializers to check 'constant' not just 'hasvalue'

12 years agoconst/variable qualifier flag for parse_variable
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 19:22:47 +0000 (20:22 +0100)]
const/variable qualifier flag for parse_variable

12 years agoAllow dangling semicolons for now
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 19:18:40 +0000 (20:18 +0100)]
Allow dangling semicolons for now

12 years agoa '(void)' parameter list does not mean 1 parameter of type void, but empty... xonoti...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:44:21 +0000 (19:44 +0100)]
a '(void)' parameter list does not mean 1 parameter of type void, but empty... xonotic needs this

12 years agofixed: -frelaxed-switch check was in the wrong position
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:42:16 +0000 (19:42 +0100)]
fixed: -frelaxed-switch check was in the wrong position

12 years agoassignment to constant error
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:37:31 +0000 (19:37 +0100)]
assignment to constant error

12 years agoconstant flag, -finitialized-nonconstants to turn initialized globals into mutable...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:35:00 +0000 (19:35 +0100)]
constant flag, -finitialized-nonconstants to turn initialized globals into mutable variables

12 years agoast: isconst->hasvalue, const keyword will set the const flag
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:30:10 +0000 (19:30 +0100)]
ast: isconst->hasvalue, const keyword will set the const flag

12 years agoParse the 'not' keyword in if as TOKEN_IDENT
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:20:00 +0000 (19:20 +0100)]
Parse the 'not' keyword in if as TOKEN_IDENT

12 years agoSome side-effect propagation for better warnings, so that comma-operators with assign...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 18:19:36 +0000 (19:19 +0100)]
Some side-effect propagation for better warnings, so that comma-operators with assignments in them don't cause the -Weffectless-statement warning, and fixing ternary precedence for fte operator list

12 years agoAllow regular AND used on non-float types
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:56:22 +0000 (18:56 +0100)]
Allow regular AND used on non-float types

12 years agoAllow strings to contain a backslash and a newline at the end
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:38:04 +0000 (18:38 +0100)]
Allow strings to contain a backslash and a newline at the end

12 years agoGuard translatable strings by -ftranslatable-strings, defaults to ON with -std=fteqcc
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:25:01 +0000 (18:25 +0100)]
Guard translatable strings by -ftranslatable-strings, defaults to ON with -std=fteqcc

12 years agoupdate noops flag while parsing a translatable string
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:23:48 +0000 (18:23 +0100)]
update noops flag while parsing a translatable string

12 years agoTranslatable string constants
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:22:00 +0000 (18:22 +0100)]
Translatable string constants

12 years agoparser_const_string can now create a translatable string
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:17:08 +0000 (18:17 +0100)]
parser_const_string can now create a translatable string

12 years agolinecounting fix for push/pop(line) pragmas
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:13:46 +0000 (18:13 +0100)]
linecounting fix for push/pop(line) pragmas

12 years agoLet's not have + and - as sole token, always allow ++ and -- to become operators...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:07:19 +0000 (18:07 +0100)]
Let's not have + and - as sole token, always allow ++ and -- to become operators independent of the noops flag

12 years agolinecounting...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 17:02:54 +0000 (18:02 +0100)]
linecounting...

12 years agolinecounting issue in the lexer
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 16:50:31 +0000 (17:50 +0100)]
linecounting issue in the lexer

12 years agoFix a bug in the lexer causing double-dots to double the character after the 2nd dot
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 16:43:24 +0000 (17:43 +0100)]
Fix a bug in the lexer causing double-dots to double the character after the 2nd dot

12 years agoFix parsing of multi-dot field types
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 16:43:13 +0000 (17:43 +0100)]
Fix parsing of multi-dot field types

12 years agomultiple dots to start a field type, ie ..float for a fieldpointer field
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 16:37:54 +0000 (17:37 +0100)]
multiple dots to start a field type, ie ..float for a fieldpointer field

12 years agomoving cleanvar=false out of a condition
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 15:20:22 +0000 (16:20 +0100)]
moving cleanvar=false out of a condition

12 years agolinecounting issues in the ftepp
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 15:08:41 +0000 (16:08 +0100)]
linecounting issues in the ftepp

12 years agoa more verbose error
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:58:10 +0000 (15:58 +0100)]
a more verbose error

12 years ago-Wconst-var
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:56:13 +0000 (15:56 +0100)]
-Wconst-var

12 years agoFixing propogate->propAgate typo in test.c
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:39:49 +0000 (15:39 +0100)]
Fixing propogate->propAgate typo in test.c

12 years agos/succeed/succeeded/
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:36:20 +0000 (15:36 +0100)]
s/succeed/succeeded/

12 years agoSimplify some condition in the tester
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:35:04 +0000 (15:35 +0100)]
Simplify some condition in the tester

12 years agoTypedef testcases
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:33:03 +0000 (15:33 +0100)]
Typedef testcases

12 years agofree the _locals vector
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:31:26 +0000 (15:31 +0100)]
free the _locals vector

12 years agoFix a missing uninitialized value which caused typedefs within functions to cause...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:30:31 +0000 (15:30 +0100)]
Fix a missing uninitialized value which caused typedefs within functions to cause a segfault

12 years agoAllow typedefs to shadow defs of previous scopes
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:25:19 +0000 (15:25 +0100)]
Allow typedefs to shadow defs of previous scopes

12 years agoImplementing typedef
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:21:52 +0000 (15:21 +0100)]
Implementing typedef

12 years agofixing a leak in the hashtables, htdel didn't delete the hash_node_t entries
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 14:12:16 +0000 (15:12 +0100)]
fixing a leak in the hashtables, htdel didn't delete the hash_node_t entries

12 years agotypedef is now a keyword
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 13:29:59 +0000 (14:29 +0100)]
typedef is now a keyword

12 years agoalways define GMQCC, never define FTEQCC or QCC, but have __STD_FTEQCC__ and the...
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 13:29:06 +0000 (14:29 +0100)]
always define GMQCC, never define FTEQCC or QCC, but have __STD_FTEQCC__ and the likes for -std=qcc/gmqcc/fteqcc

12 years agoRevert "Fix type punning warnings"
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 13:05:10 +0000 (14:05 +0100)]
Revert "Fix type punning warnings"
it's a gcc version issue...

This reverts commit 3e6d173e31cf351b12262a14c053d82a214c0b36.

12 years agoFix type punning warnings
Dale Weiler [Sun, 25 Nov 2012 12:57:28 +0000 (12:57 +0000)]
Fix type punning warnings

12 years agoFix some uninitialized values
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 12:55:29 +0000 (13:55 +0100)]
Fix some uninitialized values

12 years agouse the hashtables in the IR
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 12:37:54 +0000 (13:37 +0100)]
use the hashtables in the IR

12 years agoremoving ir_function_get_local - it's unused
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 12:33:00 +0000 (13:33 +0100)]
removing ir_function_get_local - it's unused

12 years agoChange the parser to use the hashtable functions
Wolfgang (Blub) Bumiller [Sun, 25 Nov 2012 12:23:37 +0000 (13:23 +0100)]
Change the parser to use the hashtable functions

12 years agoSome hashtable changes
Dale Weiler [Sat, 24 Nov 2012 21:46:28 +0000 (21:46 +0000)]
Some hashtable changes