Dale Weiler
|
9ba655e74c
|
Remove more unused code
|
2012-12-22 07:46:43 +00:00 |
|
Dale Weiler
|
313e442107
|
Make gmqcc binary smaller (by removing some useless code)
|
2012-12-22 07:40:17 +00:00 |
|
Dale Weiler
|
ed11fe130b
|
Stick to one hash function (no platform optimized versions)
|
2012-12-22 07:33:11 +00:00 |
|
Dale Weiler
|
7753e19ba8
|
Cleanups
|
2012-12-22 07:24:25 +00:00 |
|
Dale Weiler
|
88fee02228
|
Windows stuff for visual studio now offical works with exception to colorized output to cmd (which actually should work). As well as the testsuite which lacks implementations of task_popen/task_pclose.
|
2012-12-21 06:16:08 -05:00 |
|
Wolfgang Bumiller
|
43cf6e7cba
|
-Opeephole now also reduces CALL stores
|
2012-12-21 11:42:23 +01:00 |
|
Wolfgang Bumiller
|
48ba6a6189
|
Rename ir_function_pass_tailcall->tailrecursion; Take -fadjust-vector-fields into account when storing field type return-values from functions
|
2012-12-21 11:33:44 +01:00 |
|
Wolfgang Bumiller
|
06ea71d5be
|
manpage: -Wcpp; added a FILES section which contains gmqcc.ini.example - we should install this to some DATADIR in the install make target
|
2012-12-21 11:02:36 +01:00 |
|
Dale Weiler
|
c9e3c29a25
|
testsuite compiles on windows now (but doesn't work). Still need to implement bidirectional piping on stdout/stderr/stdin.. Which for some reason is incredibly stupidly complicated on windows. You need to setup SECURITY_ATTRIBUTES for each handle, do crazy handle duplication, and forking via CreateThread. Meanwhile the whole "concept" of threading is entierly broken in fundamental design on windows, which means you constantly need to store the current process handles for backup, and "inherit" from child process. It's just stupid, provide unix pipes via close/open and dup. Like normal people (they're simple and sane).
|
2012-12-21 01:59:34 -05:00 |
|
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 |
|