quakeforge/tools/qfcc/include
Bill Currie 554b2e4710 Add flow analysis to determin the type of .return.
It doesn't quite work yet, but...

It has proven necessary to know what type .return has at any point in the
function. The segfault in ctf is caused by the return statement added to
the end of the void function messing with the expr pointer stored in the
daglabel for .return. While this is actually by design (though the
statement really should have a valid expr pointer rather than), it actually
highlights a bigger problem: there's no stable knowledge of the current
type of .return. This is not a problem in expression statements as the
dagnodes for expression statements store the desired types of all operands.
However, when assigning from .return to attached variables in a leaf node,
the type of .return is not stored anywhere but the expression last
accessing .return.
2012-11-30 17:15:05 +09:00
..
class.h A bit of a cleanup before fixing class type defs. 2012-11-12 11:12:33 +09:00
codespace.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
cpp.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
dags.h Correct a comment. 2012-11-30 13:57:08 +09:00
debug.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
def.h Add a param flag to defs. 2012-11-20 17:50:59 +09:00
defspace.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
diagnostic.h Add a non-error diagnostic that can't be silenced. 2012-05-03 13:24:24 +09:00
dot.h Create a function to generalize dot dumping. 2012-11-15 13:44:08 +09:00
emit.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
expr.h Store the function type in function values. 2012-11-21 10:06:15 +09:00
flow.h Add flow analysis to determin the type of .return. 2012-11-30 17:15:05 +09:00
function.h Treat global variables as live at the end of a function. 2012-11-19 17:21:35 +09:00
grab.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
idstuff.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
linker.h Make linker_add_def take a pointer for the value. 2012-11-14 13:12:58 +09:00
Makefile.am Add some very evil pragmas. 2012-11-22 21:59:01 +09:00
method.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
obj_file.h Add a param flag to defs. 2012-11-20 17:50:59 +09:00
obj_type.h Add a little test case for accessing types. 2012-11-15 13:40:11 +09:00
opcodes.h Use operand types rather than def types to select opcodes. 2012-11-19 12:28:41 +09:00
options.h Add an option to control expr tree dumping. 2012-11-26 21:00:28 +09:00
pragma.h Add some very evil pragmas. 2012-11-22 21:59:01 +09:00
qfcc.h Merge qfpc into qfcc. 2012-10-26 16:01:41 +09:00
qfprogs.h Support progs.dat when dumping type encodings. 2012-11-15 11:58:13 +09:00
reloc.h Take care of relocs when defining external defs. 2012-11-12 16:14:09 +09:00
set.h Better set memory management. 2012-11-15 13:44:07 +09:00
shared.h Merge qfpc into qfcc. 2012-10-26 16:01:41 +09:00
statements.h Add flow analysis to determin the type of .return. 2012-11-30 17:15:05 +09:00
strpool.h Separate out C and html quoting into separate functions. 2012-10-30 12:31:22 +09:00
struct.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
switch.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
symtab.h Treat global variables as live at the end of a function. 2012-11-19 17:21:35 +09:00
type.h Make .type_encodings more useful. 2012-11-15 11:57:16 +09:00
value.h Store the function type in function values. 2012-11-21 10:06:15 +09:00