mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-23 12:52:46 +00:00
554b2e4710
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. |
||
---|---|---|
.. | ||
class.h | ||
codespace.h | ||
cpp.h | ||
dags.h | ||
debug.h | ||
def.h | ||
defspace.h | ||
diagnostic.h | ||
dot.h | ||
emit.h | ||
expr.h | ||
flow.h | ||
function.h | ||
grab.h | ||
idstuff.h | ||
linker.h | ||
Makefile.am | ||
method.h | ||
obj_file.h | ||
obj_type.h | ||
opcodes.h | ||
options.h | ||
pragma.h | ||
qfcc.h | ||
qfprogs.h | ||
reloc.h | ||
set.h | ||
shared.h | ||
statements.h | ||
strpool.h | ||
struct.h | ||
switch.h | ||
symtab.h | ||
type.h | ||
value.h |