Commit graph

217 commits

Author SHA1 Message Date
Dale Weiler
fa155f8a42 Added my awesome MT1997 PRNG, and use it instead of stdio's rand()/srand() .. which are implementation specific .. and simply unsafe (for example one of the compilers at work simply has it's standard library implementation of rand() return 0 always (which is perfectly conformant)). 2012-12-24 01:43:27 +00:00
Dale Weiler
0a57c408c0 Added ftepp predefs flag (ability to turn on/off predefs) disabled by default (even with -ftepp), enabled with -E, to enable use -fftepp-predefs. 2012-12-24 00:21:55 +00:00
Dale Weiler
f598fbeaea Actually fix the segfault this time 2012-12-23 08:08:05 +00:00
Dale Weiler
3b27107676 con_default_out for opts.pp_only (removes recently added TODO .. and fixes a segfault) 2012-12-23 07:57:06 +00:00
Dale Weiler
c3964cf29d Make compiler and virtual-machine compile as C++ code, also removed gmqcc_voidptr hack. 2012-12-23 07:51:19 +00:00
Dale Weiler
d35d953a91 Remove parser_compile_string_len, and make parser_compiler_string take an additional length argument. 2012-12-23 07:22:15 +00:00
Dale Weiler
6bc29a1601 Merge branch 'master' of github.com:graphitemaster/gmqcc 2012-12-23 06:06:57 +00:00
Dale Weiler
13003bf6af Wrapper around FILE to take advantage of MSVC "secure" CRT. We don't actually defend bounds checks (we just hack in the few ones to silent MSVC .. and to pass WinRT "native code" rules) 2012-12-23 06:05:22 +00:00
Wolfgang Bumiller
7efc3a4c21 Error when using both -ffalse-empty-strings and -ftrue-empty-strings 2012-12-22 16:50:09 +01:00
Dale Weiler
fa401b6f56 Cleanups and make compile with clang again with no warnings. 2012-12-22 08:22:50 +00: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
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
4ef0e8c66e -g sets opts.g and -debug causes blocks to be labeled 2012-12-20 16:04:10 +01:00
Wolfgang (Blub) Bumiller
6601e89029 fix wrong --version string 2012-12-18 15:44:26 +01:00
Wolfgang (Blub) Bumiller
52b4c9f0c1 Added -config to usage and manpage, added a CONFIG section in the manpage describing the ini file format, and added a short example to it 2012-12-18 15:26:41 +01:00
Dale Weiler
2587aed697 Allow setting configuration file via commandline 2012-12-18 05:22:23 +00:00
Dale Weiler
4b3e2571af Cleanups of compiler option configuration. Added ini/cfg parser system as well. 2012-12-18 04:57:17 +00:00
Dale Weiler
8e0515de44 Added -Wunknown-pragmas 2012-12-17 16:14:43 +00:00
Dale Weiler
c1a4c8102e Finally fix the bug in -D 2012-12-17 15:46:07 +00:00
Dale Weiler
e72d656eb8 Fixes, but still crashes because ... I have no clue, there is no reason for this to crash. 2012-12-17 15:39:22 +00:00
Wolfgang (Blub) Bumiller
340de8379a --version 2012-12-17 16:14:39 +01:00
Dale Weiler
08302ff32b Just make it -v 2012-12-17 15:11:34 +00:00
Dale Weiler
ae960efff4 Added -which/-version 2012-12-17 15:08:17 +00:00
Dale Weiler
c1c7a93884 Implemented -D for preprocessor 2012-12-17 14:58:55 +00:00
Wolfgang (Blub) Bumiller
5e186bb434 Updating usage message a bit 2012-12-06 18:16:59 +01:00
Wolfgang (Blub) Bumiller
f9b1d057b5 Moving all the global opts_ variables into a struct, now there's one global 'opts' struct 2012-12-06 13:23:53 +01:00
Dale Weiler
16ae493a9a -g now turns on -flno 2012-12-02 23:52:38 +00:00
Wolfgang (Blub) Bumiller
6b575372cc Don't warn about uninitialized stuff in accessors - remove the liferanges calculated when finalizing accessors, this would add invalid liferanges to function-local arrays and thus suppress warnings randomly 2012-12-02 18:09:59 +01:00
Wolfgang (Blub) Bumiller
53fd019780 -fcorrect-ternary; by default -std=fteqcc now uses fteqcc's wrong ternary precedence parsing 2012-12-01 13:42:16 +01:00
Wolfgang (Blub) Bumiller
e102c1632b Upping the default max-array-limit *sigh* 2012-12-01 00:34:18 +01:00
Wolfgang (Blub) Bumiller
645bd212d7 Don't try to compile an empty output from the preprocessor 2012-11-30 15:20:23 +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
Dale Weiler
ca52ecc20a Remove trailing whitespace for Blub. 2012-11-26 11:12:06 +00: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
797ceb9e04 handling TOKEN_CHARCONST - -Wmultibyte-character 2012-11-25 22:11:21 +01:00
Wolfgang (Blub) Bumiller
2c0a9d78df Guard translatable strings by -ftranslatable-strings, defaults to ON with -std=fteqcc 2012-11-25 18:25:01 +01:00
Dale Weiler
3dbe54f0cd Implemented -W? and -f? as aliases to -Whelp and -fhelp 2012-11-24 00:29:30 +00:00
Dale Weiler
4f00824104 Implemented -show-defaults 2012-11-24 00:26:51 +00:00
Wolfgang (Blub) Bumiller
d09ccba5d6 -Wdouble-declaration on by default 2012-11-23 23:44:35 +01:00
Wolfgang (Blub) Bumiller
498cbf6fa5 ftepp_out can return a nullptr 2012-11-23 14:59:56 +01:00
Wolfgang (Blub) Bumiller
3f805fdde9 -std=fteqcc gets its own operator list 2012-11-23 11:45:07 +01:00
Dale Weiler
baf69f3725 Fix more warnings 2012-11-22 20:32:08 +00:00
Wolfgang (Blub) Bumiller
f6129ea4e4 Fixing main.c shadows 2012-11-22 20:42:44 +01:00
Wolfgang (Blub) Bumiller
6983142c4d -dump vs -dumpfin; to see the IR before and after finalizing functions 2012-11-21 21:53:38 +01:00
Wolfgang (Blub) Bumiller
276346e63c This is probably what was intended actually 2012-11-19 19:06:38 +01:00
Dale Weiler
61fa54318c Merge branch 'master' into test-suite
Conflicts:
	Makefile
	ir.c
2012-11-19 02:13:46 +00:00
Wolfgang (Blub) Bumiller
2ab7d8d5c3 Adding myself to main.c's copyright notice 2012-11-18 17:06:26 +01:00
Wolfgang (Blub) Bumiller
edbe8f54cb don't call parser_cleanup with -E 2012-11-18 14:27:47 +01:00
Wolfgang (Blub) Bumiller
0330b082a2 The ftepp now always outputs into a string buffer, with -E the buffer will be dumped to stdout or the via -o specified file, without -E it'll be passed to the parser to be compiled 2012-11-18 13:33:53 +01:00
Wolfgang (Blub) Bumiller
d1373af7fc Make -E print to stdout by default and honor -o, changed handling of source list a bit 2012-11-18 12:51:38 +01:00
Wolfgang (Blub) Bumiller
366557bbab Since like with parsing, the preprocessor state has to be preserved across files for macros, we do that now, and with that introduce a new warning: -Wmultifile-if in case an #if spans over several command-line-provided source files (or progs.src file provided for that matter) 2012-11-18 11:54:11 +01:00
Wolfgang (Blub) Bumiller
2b65ea599f Some printf/con_out/con_err conversions, guarded some outputs with not-opts_pp_only so the -E switch can print to stdout normally 2012-11-18 11:43:46 +01:00
Dale Weiler
0dc4febb91 New test-suite initial implementation. Just need to write some tests. 2012-11-17 02:54:30 +00:00
Wolfgang (Blub) Bumiller
990450bfe0 ## concatenation, -Wpreprocessor warning about redefining macros, #undef 2012-11-16 22:54:59 +01:00
Wolfgang (Blub) Bumiller
07ca2e6407 importing initial ftepp.c; -E option now executes the preprocessor 2012-11-16 16:57:59 +01:00
Wolfgang (Blub) Bumiller
906f319673 Replaced it all... 2012-11-15 18:32:09 +01:00
Wolfgang (Blub) Bumiller
b8fc2b7731 cleaned up empty lines 2012-11-15 11:02:16 +01:00
Dale Weiler
0b8da9eeb4 Some more changes: added redirout/redirerr command line options 2012-11-15 03:38:20 +00:00
Dale Weiler
dcacaca2e8 added --nocolor and fixed bug 2012-11-15 00:50:05 +00:00
Dale Weiler
ac01e3b5d3 FIX TEH BLOCK 2012-11-14 20:41:15 +00:00
Wolfgang (Blub) Bumiller
84088cb5f0 Merging in new-syntax 2012-11-14 21:39:16 +01:00
Dale Weiler
f0750209b7 preliminary segregated console subsystem 2012-11-14 19:17:43 +00:00
Dale Weiler
01b619d53d JS stuff 2012-11-12 02:59:10 +00:00
Wolfgang (Blub) Bumiller
a7d3a2d6ea adding opts_max_array_size with a default of 1024, adding some TODO errors for arrays in the AST 2012-11-11 11:09:36 +01:00
Wolfgang (Blub) Bumiller
cf1ea01de3 parser_compile_file vs parser_compile_string 2012-11-11 10:33:29 +01:00
Wolfgang (Blub) Bumiller
bc43c6de47 -fadjust-vector-fields is now on by default in -std=gmqcc 2012-11-11 10:13:01 +01:00
Wolfgang (Blub) Bumiller
bf256abd66 Delete the test preprocess.c file and get the use/build part out of main.c/Makefile 2012-11-02 18:59:21 +01:00
Wolfgang (Blub) Bumiller
a3791b3f51 Finishing the preprocessing flag for the lexer, added preprocess.c to test it 2012-11-02 18:34:14 +01:00
Wolfgang (Blub) Bumiller
a195e296a9 -E switch to set opt_pp_only 2012-11-02 18:33:51 +01:00
Wolfgang (Blub) Bumiller
0fedee8312 If parser_finish fails, the exit-value must also indicate an error 2012-10-30 21:20:06 +01:00
Wolfgang (Blub) Bumiller
8ed6676d0f -Wassign-function-types - since in qcc you may assign functionpointers which take different parameters... 2012-10-28 20:31:35 +01:00
Wolfgang (Blub) Bumiller
921bbd7a8a Remove the -benchmark option+code 2012-10-27 15:33:37 +02:00
Wolfgang (Blub) Bumiller
9d70c3a56e Print a warning if end_sys_fields was declared as a field rather than a global 2012-10-02 15:59:37 +02:00
Wolfgang (Blub) Bumiller
d3c76dc819 forgot to put the -Werror in --help into the actual print parameter... 2012-08-24 23:18:44 +02:00
Wolfgang (Blub) Bumiller
1420bee49b remove unimplemented -f flags from --help, add the implemented one 2012-08-24 23:03:52 +02:00
Wolfgang (Blub) Bumiller
8a5dd1455a Add -Werror to the --help message 2012-08-24 23:02:27 +02:00
Wolfgang (Blub) Bumiller
f6ad0e0238 alignment fix 2012-08-24 23:01:18 +02:00
Wolfgang (Blub) Bumiller
a002041ec2 -benchmark option to take the time in a rather simple way 2012-08-24 23:00:47 +02:00
Wolfgang (Blub) Bumiller
3f1cad18af for the sake of testing: -Wnone 2012-08-23 20:52:39 +02:00
Wolfgang (Blub) Bumiller
45388202c4 -Weffectless-statement, on by default, creates 'statement has no effect' warning 2012-08-23 20:52:09 +02:00
Wolfgang (Blub) Bumiller
c84830bdee Warna bout unused variables - -Wunused-variable, on by default 2012-08-23 20:25:54 +02:00
Wolfgang (Blub) Bumiller
9f2e8b9bfe -Wframe-macros, warn about duplicate frame macro definitions, on by default 2012-08-23 19:16:26 +02:00
Wolfgang (Blub) Bumiller
19391bb190 the -std=qcc set of operators, still have to verify if it's the original 2012-08-23 19:01:15 +02:00
Wolfgang (Blub) Bumiller
f22112bcb8 Variadic functions: works for builtins, warns for implemenetd functions, -Wvariadic-function, on by default 2012-08-23 11:29:48 +02:00
Wolfgang (Blub) Bumiller
93e13c3cb1 option: -force-crc=number, added -info to executor to just show some file info like the crc, and -printfields to print a list of fields along with their type and position 2012-08-22 14:00:57 +02:00
Wolfgang (Blub) Bumiller
5f2fc64498 -Wimplicit-function-pointer, functions without bodies still have a global function variable and thus are function pointers, though this shouldn't really be used, thus -Wimplicit-function-pointer is on by default 2012-08-22 12:37:06 +02:00
Wolfgang (Blub) Bumiller
3cd1d19a7e Fix getline usage in main.c, fix WARN_VOID_VARIABLE -> WARN_VOID_VARIABLES in main.c 2012-08-21 16:05:10 +02:00
Wolfgang (Blub) Bumiller
93856bf151 -Wvoid-variables, QC uses 2 special void-typed variables: end_sys_globals and .end_sys_fields. However if for some reason someone wants more, we still allow them to be code-generated, but by default warn about them by default 2012-08-21 15:49:53 +02:00
Wolfgang (Blub) Bumiller
8fcc528ffa new warning: -Wlocal-constants 2012-08-21 10:18:55 +02:00
Wolfgang (Blub) Bumiller
9420c01538 added -Wused-uninitialized and warning about variables which may be used without being initialized 2012-08-19 21:26:14 +02:00
Wolfgang (Blub) Bumiller
7ef248aadb set -Wmissing-return-values to on by default, new warning: control reaches end of non-void... 2012-08-19 20:26:54 +02:00
Wolfgang (Blub) Bumiller
4d0be789ac -Wtoo-few-parameters on by deafult - for -std=gmqcc it's always an error 2012-08-18 21:04:16 +02:00
Wolfgang (Blub) Bumiller
4cf017bb6b keep the filenames of all lexed files in a global lex_filenames vector because we don't strdup the filenames into lex_ctx, but copy the pointer 2012-08-18 16:47:33 +02:00
Wolfgang (Blub) Bumiller
9ed976d304 clear items_data in main 2012-08-18 15:58:20 +02:00
Wolfgang (Blub) Bumiller
b421c42d4b replacing WARN_ERROR with opts_werror 2012-08-18 14:36:33 +02:00