On 8/16/07 6:18 AM, Manuel López-Ibáñez wrote: > Am I wrong? Why can be the reason for this? How can I > investigate further?
That's right. In this case variable 'i' is an addressable local, so it is not put in normal SSA form. It's in virtual SSA form (use the -vops option when dumping the IL). We don't warn on memory symbols, only registers. One way to address this could be to consider 'i.0' uninitialized because its initial value is coming from a local memory symbol with no know initialization. Notice that the initial assignment to i.0 has a VUSE for i's default definition. You could probably use that to warn that 'i' is being used uninitialized. BTW, your -B2 code still has the call to foo() what did you change between the two? Seems like you just s/foo(&i)/foo(i)/