Wolfgang (Blub) Bumiller
|
535fd5744b
|
lex_ctx of a return will be at the return keyword now
|
2012-11-30 14:42:18 +01:00 |
|
Wolfgang (Blub) Bumiller
|
207293bf74
|
revert 1 of the error messages
|
2012-11-30 14:37:54 +01:00 |
|
Wolfgang (Blub) Bumiller
|
321a1fe0d6
|
Keep track of the beginning of a block
|
2012-11-30 14:37:23 +01:00 |
|
Wolfgang (Blub) Bumiller
|
eec61af381
|
mark vectors as used when their members are used
|
2012-11-30 14:30:25 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b476a3deca
|
fteqcc's \{number\} string control sequences
|
2012-11-30 14:22:00 +01:00 |
|
Wolfgang (Blub) Bumiller
|
fefb51c592
|
fteqcc like \[ and \] in strings
|
2012-11-30 14:18:45 +01:00 |
|
Wolfgang (Blub) Bumiller
|
70bda85629
|
lexer: hex sequences with \x and fteqcc-specific handling if one-digit sequences and <, -, and > sequences
|
2012-11-30 14:18:15 +01:00 |
|
Wolfgang (Blub) Bumiller
|
600ecda860
|
Set the full const/var qualifier; only generate warnings about unimplemented functions if they have no qualifier at all
|
2012-11-30 14:05:25 +01:00 |
|
Wolfgang (Blub) Bumiller
|
5e23e8296d
|
don't just store a 'bool constant' in the ast/ir, store the complete qualifier: 'int cvq', moved CV_ defines into gmqcc.h
|
2012-11-30 13:47:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8e043c8447
|
Remove the 'warnreturn' parameter in some parser functions
|
2012-11-30 12:37:46 +01:00 |
|
Wolfgang (Blub) Bumiller
|
39b8d8431c
|
Actually generate the missing return instruction
|
2012-11-30 12:35:33 +01:00 |
|
Wolfgang (Blub) Bumiller
|
9841bc2f0d
|
ast_loop with no condition and no incrementor are 'for(;;)' and need to loop endlessly instead of once...
|
2012-11-30 12:28:51 +01:00 |
|
Wolfgang (Blub) Bumiller
|
42376513e7
|
Still need to generate the jump...
|
2012-11-30 12:23:27 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a19849099c
|
ast_ifthen will not create dead blocks anymore
|
2012-11-30 12:21:10 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a58061464e
|
actually removing -Wmissing-return-values from parser.c and enabling the ast code for it
|
2012-11-30 12:11:36 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2ec0a96a21
|
Fix a wrong vec_remove in the tailcall pass
|
2012-11-30 11:59:03 +01:00 |
|
Wolfgang (Blub) Bumiller
|
03cb670096
|
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
|
2012-11-30 11:55:32 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0983125d2d
|
print the number of performed optimizations after compiling
|
2012-11-30 11:47:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
17029ba695
|
Also print the numeric -O flag which would enable an optimization when listing optimizations via -Ohelp
|
2012-11-30 11:15:57 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e1fe6cff54
|
Importing tail-recursion optimization
|
2012-11-30 11:12:53 +01:00 |
|
Wolfgang (Blub) Bumiller
|
a890589031
|
-O now, additionally to taking a number, can work like -W and -f to take an actual optimization name
|
2012-11-30 11:05:58 +01:00 |
|
Wolfgang (Blub) Bumiller
|
fef9303381
|
moving opts_warn and opts_werror to con.c
|
2012-11-28 19:18:11 +01:00 |
|
Wolfgang (Blub) Bumiller
|
3c1992fc38
|
qcvm didn't compile since moving the compile messages to con.c due to undefined references - fixed now
|
2012-11-28 19:16:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
8e1ce2ab5e
|
generic compile_error/compile_warning functions in con.c, issuing end-of-non-void warning from within the ast now
|
2012-11-26 16:12:40 +01:00 |
|
Wolfgang (Blub) Bumiller
|
e6928c6b78
|
Checking in test for nested ternaries; this is more a test of the ast than the parser
|
2012-11-26 14:12:56 +01:00 |
|
Wolfgang (Blub) Bumiller
|
08551eefba
|
Fix a small typo
|
2012-11-26 14:05:31 +01:00 |
|
Dale Weiler
|
ca52ecc20a
|
Remove trailing whitespace for Blub.
|
2012-11-26 11:12:06 +00:00 |
|
Dale Weiler
|
77272da718
|
opval is asserted .. need (void) to hide warning when NDEBUG
|
2012-11-26 02:12:50 +00:00 |
|
Dale Weiler
|
a336fb62ff
|
fast optimized murmur hash with crc seeding, literally zero collision, and roughly only 52 instructions
|
2012-11-26 00:21:16 +00:00 |
|
Wolfgang (Blub) Bumiller
|
ec2ff09eff
|
operator &~= must not cause the generated binstore to free the destination twice
|
2012-11-26 00:15:07 +01:00 |
|
Wolfgang (Blub) Bumiller
|
1c9de6763f
|
Same as earlier: remember the outgoing block of a condition in a ternary since it could be different due to shortened logic
|
2012-11-25 23:54:15 +01:00 |
|
Wolfgang (Blub) Bumiller
|
bf244fc960
|
ast_breakcont_codegen: error when a target is missing instead of segfaulting trying to access it anyway
|
2012-11-25 23:51:39 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0564e701c0
|
endlessloops don't have any other block which could be a continue-target-block, so use the body itself to not continue to NULL
|
2012-11-25 23:50:42 +01:00 |
|
Wolfgang (Blub) Bumiller
|
23e0637e85
|
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
|
2012-11-25 23:48:29 +01:00 |
|
Wolfgang (Blub) Bumiller
|
d70fcdec42
|
don't set the request-Lvalue flag for an array index
|
2012-11-25 23:35:49 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0af62801f4
|
Don't add redeclared globals a second time
|
2012-11-25 23:35:31 +01:00 |
|
Wolfgang (Blub) Bumiller
|
7c241da548
|
more verbose errors in the ast when an ir-create fails
|
2012-11-25 23:32:10 +01:00 |
|
Wolfgang (Blub) Bumiller
|
38df8b5e40
|
Another case for -fassign-function-types
|
2012-11-25 23:28:47 +01:00 |
|
Wolfgang (Blub) Bumiller
|
0d3896ca54
|
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
|
2012-11-25 23:27:48 +01:00 |
|
Wolfgang (Blub) Bumiller
|
b4a5517851
|
fix a lexer error which parsed !! as one operator
|
2012-11-25 23:24:39 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2f5a26a4de
|
__builtin_debug_printtype directive... helped me down tracking a bug: parsing typedeffed types in parameter lists properly now
|
2012-11-25 22:57:11 +01:00 |
|
Wolfgang (Blub) Bumiller
|
08ef8bd045
|
Only check the ast-type of a switch case, not if it's an ACTUAL constant, fteqcc doesn't either... grrr
|
2012-11-25 22:40:35 +01:00 |
|
Wolfgang (Blub) Bumiller
|
10f49a38ca
|
actually handle unary plus...
|
2012-11-25 22:38:52 +01:00 |
|
Wolfgang (Blub) Bumiller
|
089e490c69
|
Allow float constants which start with a dot
|
2012-11-25 22:35:41 +01:00 |
|
Wolfgang (Blub) Bumiller
|
42bd37a2e8
|
Ah right, 'var' is not an actual keyword, support TOKEN_IDENT-var inside functions
|
2012-11-25 22:26:28 +01:00 |
|
Wolfgang (Blub) Bumiller
|
f1bbdb7d45
|
Use the correct default cv-qualifier on locals
|
2012-11-25 22:16:08 +01:00 |
|
Wolfgang (Blub) Bumiller
|
c62e0a93eb
|
Allow 'var' in functions... even there initialized locals seem to be constant by default... laaaaaaaame
|
2012-11-25 22:15:08 +01:00 |
|
Dale Weiler
|
967254f7f2
|
Fix the testsuite to properly error on failed loads
|
2012-11-25 21:12:26 +00:00 |
|
Wolfgang (Blub) Bumiller
|
797ceb9e04
|
handling TOKEN_CHARCONST - -Wmultibyte-character
|
2012-11-25 22:11:21 +01:00 |
|
Wolfgang (Blub) Bumiller
|
2234090398
|
Actually use TOKEN_CHARCONST in the lexer...
|
2012-11-25 22:04:27 +01:00 |
|