quakeforge/tools/qfcc/source
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
..
.indent.pro indent whitespace cleanup. not perfect, but a bit more consistent now 2001-12-06 19:49:40 +00:00
class.c Fix class type encoding. 2012-11-12 12:46:15 +09:00
codespace.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
constfold.c Make values independent objects. 2012-11-15 13:44:06 +09:00
cpp.c Fall back to execve/wait when execvp and waitpid are unavailable. 2012-08-19 13:18:38 +09:00
dags.c Treat global vars as always live. 2012-11-24 14:56:30 +09:00
debug.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
def.c Mark initialized struct/array defs as initalized. 2012-11-24 15:26:27 +09:00
defspace.c Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
diagnostic.c Add a non-error diagnostic that can't be silenced. 2012-05-03 13:24:24 +09:00
disassemble.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
dot.c Create a function to generalize dot dumping. 2012-11-15 13:44:08 +09:00
dot_dag.c Make dag dumping from gdb easier. 2012-11-21 15:03:44 +09:00
dot_expr.c Add an option to control expr tree dumping. 2012-11-26 21:00:28 +09:00
dot_flow.c Add flow analysis to determin the type of .return. 2012-11-30 17:15:05 +09:00
dot_sblock.c Move and rename statement related flow_is_* and flow_get_* 2012-11-30 14:06:52 +09:00
dump_globals.c Add a param flag to defs. 2012-11-20 17:50:59 +09:00
dump_lines.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
dump_modules.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
dump_strings.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
emit.c Set the operand type for op_label. 2012-11-19 12:30:23 +09:00
expr.c Fix some whitespace. 2012-11-26 16:13:40 +09:00
flow.c Add flow analysis to determin the type of .return. 2012-11-30 17:15:05 +09:00
function.c Add a param flag to defs. 2012-11-20 17:50:59 +09:00
grab.c Make hash tables more const correct. 2012-10-27 11:44:31 +09:00
idstuff.c Use dstring for progdefs.h writing. 2012-05-02 23:39:49 +09:00
linker.c Relocate the data in the type encodings space. 2012-11-14 20:37:19 +09:00
Makefile.am Add some very evil pragmas. 2012-11-22 21:59:01 +09:00
method.c A bit of a cleanup before fixing class type defs. 2012-11-12 11:12:33 +09:00
obj_file.c Add a param flag to defs. 2012-11-20 17:50:59 +09:00
obj_type.c Make values independent objects. 2012-11-15 13:44:06 +09:00
opcodes.c Add some very evil pragmas. 2012-11-22 21:59:01 +09:00
options.c Add an option to control expr tree dumping. 2012-11-26 21:00:28 +09:00
pragma.c Add some very evil pragmas. 2012-11-22 21:59:01 +09:00
qc-lex.l Add the @nil keyword. 2012-11-27 18:33:42 +09:00
qc-parse.y Fix a missing ; 2012-11-20 17:11:39 +09:00
qfcc.c Make .type_encodings more useful. 2012-11-15 11:57:16 +09:00
qfpreqcc Better handling of progs.dat and line numbers. 2012-11-15 14:53:09 +09:00
qfprogs.c Support progs.dat when dumping type encodings. 2012-11-15 11:58:13 +09:00
qp-lex.l Make hash tables more const correct. 2012-10-27 11:44:31 +09:00
qp-parse.y Rework the unary_expr grammar to allow ++*foo. 2012-11-09 12:32:38 +09:00
reloc.c Take care of relocs when defining external defs. 2012-11-12 16:14:09 +09:00
set.c Fix some errors in the set code. 2012-11-26 17:19:02 +09:00
shared.c Merge qfpc into qfcc. 2012-10-26 16:01:41 +09:00
statements.c Add flow analysis to determin the type of .return. 2012-11-30 17:15:05 +09:00
strpool.c Separate out C and html quoting into separate functions. 2012-10-30 12:31:22 +09:00
struct.c Make values independent objects. 2012-11-15 13:44:06 +09:00
stub.c Quote string values when dumping globals. 2012-11-08 21:13:24 +09:00
switch.c Don't create default_expr unless needed. 2012-11-24 21:53:00 +09:00
symtab.c Take care of relocs when defining external defs. 2012-11-12 16:14:09 +09:00
type.c Make .type_encodings more useful. 2012-11-15 11:57:16 +09:00
value.c Store the function type in function values. 2012-11-21 10:06:15 +09:00