mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-01 13:30:42 +00:00
aa97979d98
Nicely, the use sets from live_variable analysis can be used too, though there are some problems with the naive implementation. For: vector foo (float x, float y, float z) { vector v; v.x = x; v.y = y; v.z = z; return v; } qfcc thinks v is uninitialized, but if "if (x) return nil;" (or any other basic-block splitter) is put just before the return v; qfcc correctly detects that v is initialized. The reason is that the inits are in the same basic block as the return, and thus aren't affecting the reaching definitions, which are stored per-block. The naive implementation should be good for a fast-cull before doing a per-statement check. |
||
---|---|---|
.. | ||
doc | ||
include | ||
source | ||
test | ||
AUTHORS | ||
bootstrap | ||
configure.in | ||
Makefile.am | ||
TODO |