Commit graph

1530 commits

Author SHA1 Message Date
Dale Weiler
3c003bc168 Get gmqcc/qcvm compiling on windows again. Plus work in progress support for the testsuite on windows (does not compile yet). 2012-12-21 01:00:51 -05:00
Dale Weiler
0be55824d4 Implemented preprocessing error directive tests (should fail) 2012-12-21 04:48:01 +00:00
Dale Weiler
0e40ef172a Document ini.example 2012-12-21 04:01:47 +00:00
Dale Weiler
bf53f82d16 Update ini.example (added UNREACHABLE_CODE, and CPP) as warning options 2012-12-21 03:14:31 +00:00
Dale Weiler
f78ab9061b added -Wcpp (for turning off cpp warnings defined with #warning like GCC/clang/pathscale .. no more [-Wunused-variable]) 2012-12-21 03:12:58 +00:00
Dale Weiler
36a90bb866 Implemented #warning and #error preprocessor directives, they're functionally equivalent to CPPs (supporting both string constant and non-string constant versions). Warnings however are printed with a [-Wunused-variable] which isn't correct (TODO: allow systematic changes of -W paramaters in relation to warning fields for preprocessor directives. 2012-12-21 03:08:21 +00:00
Dale Weiler
c7a62970a6 Merge branch 'master' of github.com:graphitemaster/gmqcc 2012-12-20 23:07:33 +00:00
Dale Weiler
e1f0e40341 Implemented roboust compile-time endianess check. 2012-12-20 23:07:06 +00:00
Wolfgang Bumiller
0bbc8a3350 Remove old tempalloc code; disable -Olocaltemps for now 2012-12-20 23:52:54 +01:00
Wolfgang Bumiller
e38bdecd21 Be more correct with sizes; use a better local-alloc strategy 2012-12-20 23:48:41 +01:00
Wolfgang Bumiller
5375400e85 minor: fix ast_function_label 2012-12-20 23:27:23 +01:00
Wolfgang Bumiller
1d3fdea432 Fix util_endianswap; and endianswap the LNO data as well 2012-12-20 22:03:51 +01:00
Wolfgang Bumiller
8d86d7d1c1 Don't check for is_return but for final at the end of a function so that if 'goto' is the last expression we don't try to append a return 2012-12-20 21:05:29 +01:00
Wolfgang Bumiller
93341dd009 *sigh* 2012-12-20 20:57:05 +01:00
Wolfgang Bumiller
a6547a15f3 no need to check the array, the 2nd NOT is a NOT_F 2012-12-20 20:56:49 +01:00
Wolfgang Bumiller
8dc6696957 manpage: -fcorrect-logic, -ftrue-empty-strings, -ffalse-empty-strings 2012-12-20 20:56:08 +01:00
Wolfgang Bumiller
ccbccad994 fix -fcorrect-logic to use double-not instead of a single one - wow that was a bad one 2012-12-20 20:55:56 +01:00
Wolfgang Bumiller
712be84bba Testcases for -ftrue-empty-strings and -ffalse-empty-strings 2012-12-20 20:43:58 +01:00
Wolfgang Bumiller
68c4070f62 Fix the -fcorrect-logic condition 2012-12-20 20:40:59 +01:00
Wolfgang Bumiller
0988b731b7 Fix -fcorrect-logic 2012-12-20 20:33:05 +01:00
Wolfgang Bumiller
b595ec03f8 fix a leak in the local-allocator 2012-12-20 20:26:54 +01:00
Wolfgang Bumiller
98b6772db9 Fix a leak: free code_linenums 2012-12-20 20:26:14 +01:00
Wolfgang Bumiller
4f9c7861ec For loops may have an empty condition - don't try processing a NULL 2012-12-20 20:23:35 +01:00
Wolfgang Bumiller
a985a5cab1 while/for/do now all use process_condition, ast_loop got 2 new parameters for more efficient translation 2012-12-20 20:22:31 +01:00
Wolfgang Bumiller
d72cb42b08 process_condition function used by parse_if - need to still add it to loops 2012-12-20 19:51:30 +01:00
Wolfgang Bumiller
db577fdf17 -ftrue-empty-strings now changes type_not_instr[TYPE_STRING] to INSTR_NOT_F 2012-12-20 19:32:57 +01:00
Wolfgang Bumiller
34063108a6 since unary not doesn't fold these, remove them from immediate_is_true 2012-12-20 19:19:12 +01:00
Wolfgang Bumiller
4319922b3c introducing an immediate_is_true which follows the new -f flags on strings and vector truthfulness, used in logic-op constant folding; const folding now disabled for functions-constants on NOT because it's stupid 2012-12-20 19:18:22 +01:00
Wolfgang Bumiller
6b9eff19f1 unary not now uses NOT_F with -ftrue-empty-strings 2012-12-20 19:04:56 +01:00
Wolfgang Bumiller
b85441d6af Making logical 'and' and 'or' use NOT_ in -fcorrect-logic for both operands normally, but only for the first with -fperl-logic 2012-12-20 19:00:23 +01:00
Wolfgang Bumiller
d5cfe74d5d Adding -fcorrect-logic, -ftrue-empty-strings, -ffalse-empty-strings flags; not used yet 2012-12-20 18:59:05 +01:00
Wolfgang Bumiller
8f858a8f3e manpage: typo 2012-12-20 16:56:22 +01:00
Wolfgang Bumiller
5b98011f5f Fix condition on whether or not to print 'error' or 'warning' 2012-12-20 16:55:00 +01:00
Wolfgang Bumiller
6cd821d459 -Werror-<warning> should actually use opts_setwerror 2012-12-20 16:53:09 +01:00
Wolfgang Bumiller
b360245b45 -Werror-<warning>, -Wno-error-<warning>, manpage updated 2012-12-20 16:49:10 +01:00
Wolfgang Bumiller
78b1105c10 manpage: -Wunreachable-code 2012-12-20 16:41:40 +01:00
Wolfgang Bumiller
fffa78c7a6 Reorder the warnings in opts.c to match their oder in opts.def, added WARN_LOCAL_SHADOWS to the list with its default false parameter 2012-12-20 16:32:36 +01:00
Wolfgang Bumiller
eb8dc60981 Turn -fallow-unreachable-code into a -Wunreachable-code 2012-12-20 16:29:32 +01:00
Wolfgang Bumiller
145c011247 Fix object dependency: OBJ -> OBJ_D so they all depend on gmqcc.h again properly 2012-12-20 16:28:35 +01:00
Wolfgang Bumiller
915c002be4 Temporarily fix noreturn bug by creating an actual dummy return instruction after the call for now 2012-12-20 16:20:08 +01:00
Wolfgang Bumiller
4ef0e8c66e -g sets opts.g and -debug causes blocks to be labeled 2012-12-20 16:04:10 +01:00
Wolfgang Bumiller
b02c4e4d10 sscanf_s only for _MSC_VER not WIN32 in exec.c 2012-12-20 15:46:31 +01:00
Wolfgang Bumiller
5d51930adf Oh god I hate this so much 2012-12-20 15:45:15 +01:00
Wolfgang Bumiller
bb356bffa5 that should have gone into the second to last commit 2012-12-20 15:27:15 +01:00
Wolfgang Bumiller
0f0a458cc4 WINDOWS 8 USERS ARE IDIOTS, YES YOU SHOULD TAKE THIS PERSONALLY 2012-12-20 15:26:45 +01:00
Wolfgang Bumiller
d76e6b103d ast_return needs the correct context... 2012-12-20 15:01:19 +01:00
Wolfgang Bumiller
3119a95a89 -fallow-unreachable-code 2012-12-20 14:41:16 +01:00
Wolfgang Bumiller
79f3f980e9 vector initialization tests 2012-12-20 14:12:22 +01:00
Wolfgang Bumiller
a274f8ec07 making the uninitialized-var on vector warning now check all members; ir_value_vector_member now also appends _x,_y,_z since they're used in the used-unintialized message 2012-12-20 14:06:25 +01:00
Wolfgang Bumiller
8adbb2f5ac Remove the suffix entirely 2012-12-20 13:44:53 +01:00