Commit graph

2697 commits

Author SHA1 Message Date
Wolfgang (Blub) Bumiller
6aefb22c74 ir_builder_delete now causes the ..._delete_quick functions to be used which will skip the removal of references: ir_value's won't have their read/write references removed by ir_instr_delete_quick 2012-08-24 20:39:47 +02:00
Wolfgang (Blub) Bumiller
b2315777d1 cache the IMMEDIATE string in the builder directly 2012-08-24 19:52:06 +02:00
Wolfgang (Blub) Bumiller
1fc8c2f697 copy the function context over to its ir_value as well 2012-08-24 19:49:12 +02:00
Wolfgang (Blub) Bumiller
74cb075665 cache filenames as such instead of using code_cachedstring 2012-08-24 19:44:29 +02:00
Wolfgang (Blub) Bumiller
bdffa662b6 not using cachedstring on generated string values anymore, it's not the IR's job 2012-08-24 19:08:33 +02:00
Wolfgang (Blub) Bumiller
1d851a1400 fixing token-reset in modelname 2012-08-24 18:23:35 +02:00
Wolfgang (Blub) Bumiller
04dca17cff ir_value now checks if a name was specified 2012-08-24 18:14:39 +02:00
Wolfgang (Blub) Bumiller
8e990b65f3 Not labeling temps/blocks if opts_dump isn't specified 2012-08-24 18:10:41 +02:00
Wolfgang (Blub) Bumiller
7fec608417 better labelling in ast_function_labeling, this time the number is even printed forward rather than backward... ;) 2012-08-24 18:08:28 +02:00
Wolfgang (Blub) Bumiller
2524d9c31b ir: don't require a label on a block 2012-08-24 18:03:57 +02:00
Wolfgang (Blub) Bumiller
ab91dea4e0 the lexer now doesn't _allocate_ the token structure, also: the vector holding the token doesn't shrink so we have much fewer reallocations 2012-08-24 17:37:55 +02:00
Wolfgang (Blub) Bumiller
20b8a191b1 parse_variable refactored, moved out the parsing of function bodies, easier memory handling 2012-08-24 17:23:47 +02:00
Wolfgang (Blub) Bumiller
e1155eebc2 renaming some parser functions, mainly shortining things: parse_type just looks much better than parser_parse_type... 2012-08-24 15:34:48 +02:00
Wolfgang (Blub) Bumiller
50e76a56c5 Adding static keyword to some more parser functions 2012-08-24 15:27:41 +02:00
Wolfgang (Blub) Bumiller
02512f21f2 create_vector_members sanitized 2012-08-24 15:09:51 +02:00
Wolfgang (Blub) Bumiller
f042068aab ir_value_life_merge_into: fix a possible underflow 2012-08-24 15:06:30 +02:00
Wolfgang (Blub) Bumiller
7cfb9425a0 Fixing handling of duplicate frame macros: 'continue' would continue the inner for, how could I miss that 2012-08-23 22:40:51 +02:00
Wolfgang (Blub) Bumiller
5e4b8846d1 slight change to ir_value_dump_life; fixing ir_value_life_merge_into: TODO test this seperately, all cases 2012-08-23 22:07:32 +02:00
Wolfgang (Blub) Bumiller
41d1ef37d2 use the expression's linenumber for the 'statement has no effect' warning rather than the current one because that one's usually the line below... 2012-08-23 20:56:05 +02:00
Wolfgang (Blub) Bumiller
cb604603ca -Weffectless-statement now also triggers on effectless incrementors in for-loops, if an incrementor was specified 2012-08-23 20:54:24 +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
dff6328c9e add 'X has been declared here:' too the too-few/many-parameters warning/error 2012-08-23 20:48:51 +02:00
Wolfgang (Blub) Bumiller
8adbf07555 Warn about unused globals too, not about functions or constants though 2012-08-23 20:32:33 +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
4f758284a1 fixing up prevoius commit: cannot reference the parser here 2012-08-23 19:28:15 +02:00
Wolfgang (Blub) Bumiller
5d23fc5f5f Make the lexer use the correct error-printing mechanism 2012-08-23 19:20:50 +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
9f411a533a Add the empty globaldef/fielddef to the object, savegame skips that null-def when saving variables... 2012-08-23 18:40:10 +02:00
Wolfgang (Blub) Bumiller
76b0eb0cb7 Don't add DEF_SAVEGLOBAL for locals actually... 2012-08-23 18:32:11 +02:00
Wolfgang (Blub) Bumiller
b2cb612c70 Adding DEF_SAVEGLOBAL, marking globals as to-be-saved now, for real support of quicksaving 2012-08-23 18:28:05 +02:00
Wolfgang (Blub) Bumiller
f9746a59ae it's not the IR's job to fail when a local of the same name is created twice... 2012-08-23 17:22:13 +02:00
Wolfgang (Blub) Bumiller
39a62f495c removing some extra newlines in ast error messages 2012-08-23 17:16:07 +02:00
Wolfgang (Blub) Bumiller
5022f716dc fix: check if parsing a variable initializer failed 2012-08-23 13:30:30 +02:00
Wolfgang (Blub) Bumiller
fe2f9d79c5 fixing mem-vector resize function 2012-08-23 13:21:14 +02:00
Wolfgang (Blub) Bumiller
52a1b9469c qcvm won't print checksum or entity field area size without the -info option anymore 2012-08-23 12:42:41 +02:00
Wolfgang (Blub) Bumiller
412446f42e -std=qcc now warns about variadic functions via -Wextensions 2012-08-23 11:33:50 +02:00
Wolfgang (Blub) Bumiller
f3b652bfce Removing print2 and print3 from data/parsing.qc, replaced by variadic print 2012-08-23 11:30:25 +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
deb7ccb830 for the lexer 3 dots now become TOKEN_DOTS 2012-08-23 11:12:32 +02:00
Wolfgang (Blub) Bumiller
84149c371d Possibility to call a main function with parameters by specifying -float, -vector or -string parameters to standalone qcvm 2012-08-23 10:35:03 +02:00
Wolfgang (Blub) Bumiller
ab440743eb on linux we need -lm for sqrt 2012-08-23 10:24:41 +02:00
Wolfgang (Blub) Bumiller
8465f98f37 vtos should use the same quotes as we use in qc source 2012-08-23 10:18:59 +02:00
Wolfgang (Blub) Bumiller
7e3ccf4626 MUL_VF and MUL_FV get their special life-range handling 2012-08-22 18:51:32 +02:00
Wolfgang (Blub) Bumiller
8b90fcf482 commenting on the quirks of MUL_VF and MUL_FV in gmqcc.h's instruction list 2012-08-22 18:34:48 +02:00
Wolfgang (Blub) Bumiller
defb0fb6c4 using %i for instruction opcode output is a little more consistent with the above data, so you can quickly spot if an operand is a local or something else 2012-08-22 18:27:49 +02:00
Wolfgang (Blub) Bumiller
ab714862d6 committing gmqcc.h for previous exec.c commit: qc_program gets .xflags 2012-08-22 17:49:25 +02:00
Wolfgang (Blub) Bumiller
b93125c678 cut off too-long strings in disassembly 2012-08-22 17:41:24 +02:00
Wolfgang (Blub) Bumiller
aa314ed147 when using -trace in qcvm: print a newline after every print that doesn't end in a newline, so that the next disassembled instruction doesn't appear mid-text 2012-08-22 17:37:22 +02:00