Timothy C. McGrath
04e4da654a
Changes taniwha did to make qfcc work with statically compiled libs.
...
This is what was bugging me all night long with qfcc ><;;
Tim McGrath (Misty-chan)
2001-10-26 02:32:40 +00:00
Bill Currie
70bedc149f
allow returning NIL
2001-10-25 21:15:48 +00:00
Bill Currie
bc44f950af
enable passing NIL into a function
2001-10-25 20:51:56 +00:00
Bill Currie
f8a41cb1bc
completely nuke the concept of "priority" from opcodes and use get_op_string
...
in emit_sub_expr instead of a redundant switch.
2001-10-25 17:48:35 +00:00
Bill Currie
f029687ff0
switch statement. could do with lots of improvements, but this should be a
...
good start.
2001-10-25 06:41:52 +00:00
Bill Currie
09405469f6
throw PR_BeginCompilation's arguments out the nearest airlock
2001-10-24 22:53:27 +00:00
Bill Currie
f36e7bb22f
reorg
2001-10-24 22:52:50 +00:00
Adam Olsen
3bba5398ba
- audit malloc usage. now everything checks the return value :)
2001-10-24 22:50:06 +00:00
Bill Currie
133ce647fb
implement break and continue. only loops covered for now, but that's because
...
switch isn't implemented yet
2001-10-24 18:57:29 +00:00
Bill Currie
743bc5178b
fix uninitialized variable detection for nested scopes
2001-10-24 15:21:21 +00:00
Bill Currie
6553c81a41
proper scoping for QC ala C.
2001-10-24 06:39:49 +00:00
Bill Currie
b8a9a97c75
the usual
2001-10-22 18:47:45 +00:00
Bill Currie
2ef8adea09
handle more conditional code and check for unitied vars in the test of if ()
...
etc
2001-10-19 05:16:24 +00:00
Bill Currie
16c334b6b9
uninit var detection seems to work for if and if else
2001-10-19 03:22:04 +00:00
Bill Currie
3572a6be28
change def_list from def_t ** to hashtab_t * and comment out some debug code
2001-10-19 00:45:56 +00:00
Bill Currie
237d238a65
beginnings of "if" uninitialized variable support. doesn't make any
...
difference yet
2001-10-18 23:06:39 +00:00
Bill Currie
5ca785e7e8
uninitialized variable detection. not perfect (lots of false negatives, but
...
fewer than before;) but prozac isn't giving any false positives.
2001-10-18 20:05:26 +00:00
Bill Currie
96e4e1a232
the beginning of unititialized var detection. first victim: functions.
...
--undefined-function-warning is now --no-undefined-function-warning and
the default is to detect called but undefined functions.
2001-10-18 17:41:22 +00:00
Bill Currie
952f029e6d
rename def_t.initialized to def_t.constant
2001-10-18 17:15:05 +00:00
Bill Currie
85834ab8c3
handle a couple of missed ex_nil cases
2001-10-17 18:36:19 +00:00
Bill Currie
79ac85b54f
type checking now works much better and there is now a NIL builtin constant
...
which can be assigned (/only/) to anything.
2001-10-17 07:45:37 +00:00
Bill Currie
2d068c0745
massive windows.h and WIN32 cleanup.
2001-10-16 21:40:45 +00:00
Bill Currie
c8e1e7942a
correct type error checking for vectors vs floats
2001-10-12 03:58:22 +00:00
Bill Currie
356492f683
don't convert float test epxressions for --id and fix a typo in an error
...
message for !expr
2001-10-06 04:48:52 +00:00
Ragnvald Maartmann-Moe IV
2080ae7db6
Fix stamp ignorance.
2001-10-05 19:42:17 +00:00
Bill Currie
67635e9dd0
fix a d'oh in the param/return type checking
2001-10-02 19:03:28 +00:00
Bill Currie
dcb51dc586
expr.h:
...
get_type and extract_type prototypes and add extern for type_names
emit.c:
use extract_type instead of get_type
expr.c:
get_type now returns the type pointer rather than the qc type enum.
extract_type uses get_type to return the qc type enum.
make type_names global
use get_type instead of ex_expr/ex_def to cover more cases
clean up function call/return processing as a result of get_type
pr_opcode.c:
use opcode_priority_type_table_ab when var_c is null and a minor
cleanup in PR_Opcode_Find
2001-10-02 18:55:52 +00:00
Bill Currie
7407e4f1b7
and some more
2001-09-28 07:09:38 +00:00
Jeff Teunissen
cd5f322cc1
Move along, nothing to see here... :)
2001-09-26 03:39:44 +00:00
Bill Currie
c74fc1c0df
make the unused var warning like gcc's
2001-09-24 17:51:15 +00:00
Bill Currie
2447983464
try three. this should work
2001-09-24 03:23:44 +00:00
Bill Currie
998855402c
try two
2001-09-24 02:48:09 +00:00
Bill Currie
5f9a3d9617
try to make --with-qf work while configuring
2001-09-24 02:38:28 +00:00
Bill Currie
789a11d2d8
don't print the file or line number for "warnings treated as errors"
2001-09-23 04:08:28 +00:00
Bill Currie
2054ec016a
fix a slew of false positives with unused var checking
2001-09-23 04:08:03 +00:00
Bill Currie
7aec6e253a
unused local variable detection
2001-09-22 23:41:47 +00:00
Bill Currie
9f715ae9f8
more small old-parser cleanups
2001-09-15 20:31:17 +00:00
Bill Currie
3557d375f3
add better scoping to TODO even though I'm likely to do it soon
2001-09-13 20:34:08 +00:00
Bill Currie
d7675ada7a
move the particle count multiplication out of the renderer and into the clien
...
(for blood and gunshot, anyway).
2001-09-06 05:41:15 +00:00
Jeff Teunissen
896d304ac9
New man page for qfcc -- doesn't match the program yet, I'm committing
...
it for comments.
2001-08-31 16:43:26 +00:00
Bill Currie
805c1bd242
foo (snafu, bar (baz)) no longer uses a temp for bar's return value
2001-08-24 23:22:02 +00:00
Bill Currie
f16886b7f1
missed a need to increment the users of the temp for chained functions
2001-08-24 22:29:06 +00:00
Bill Currie
cee850e499
remove debug
2001-08-24 22:03:50 +00:00
Bill Currie
8166ee7bfb
fix a whitespace snafu (gee, vim can be a pain somethings)
2001-08-24 21:57:07 +00:00
Bill Currie
ea451ab02d
Remove unnecessary temps from function return values. This has one
...
*/CRITICAL/* implication: DO NOT /EVER/ RELY ON EVALUATION ORDER. This
isn't /really/ that bad: evaluation order will be consistent for similar
expressions, but for (eg) foo() + bar()*2, bar will be called first.
2001-08-24 21:47:52 +00:00
Bill Currie
08f73bed78
better code generation for foo(bar(baz)). foo(snafu,bar(baz)) isn't optimal
...
yet, but the code is at least correct
2001-08-24 21:14:04 +00:00
Bill Currie
eeec89e6ba
don't put function args in temps when not needed. still need to take care
...
of the return value, but that can possibly be taken care of in an optimiser
pass.
2001-08-24 05:40:48 +00:00
Bill Currie
0eda635483
fix temp reference counting on function call args
2001-08-22 23:21:47 +00:00
Bill Currie
4c48851096
fix a buffer overflow in new_label_expr
...
use reference counting for temp defs and call PR_FreeTempDefs at the end
of emit_sub_expr as well as emit_expr.
fix a (relatively harmless) bug in type processesing of foo.bar =
2001-08-22 21:55:01 +00:00
Bill Currie
a32384f16c
report the name of the function using the most locals
2001-08-21 18:23:21 +00:00