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)/

Reply via email to