------- Comment #8 from dnovillo at gcc dot gnu dot org  2007-03-04 19:04 
-------
(In reply to comment #7)
> If you have a run directory:
> cd gcc/testsuite/ada/acats/tests/c4/c41307d
> gdb  .../gcc/x86_64-unknown-linux-gnu/4.3.0/gnat1
> r -I../../../support -quiet -dumpbase c41307d.adb -O1 -mtune=generic
> c41307d.adb
> 
> If not cd somewhere then
> gnatchop .../version-head/gcc/testsuite/ada/acats/tests/c4/c41307d.ada 
> gnatchop ../version-head/gcc/testsuite/ada/acats/support/rep*
> gcc -c -O1 c41307d.adb
> 


Thanks.  It's one of these three symbols:

c41307d: This symbols is not marked call-clobbered: C.83
c41307d: This symbols is not marked call-clobbered: C.84
c41307d: This symbols is not marked call-clobbered: C.87

These symbols are in the alias set of a call-clobbered memory tag.  When the
operand scanner is adding VDEFs for this call-clobbered tag, it goes through
the set of aliases adding VDEF operands for them.  However, since these symbols
are not marked as call-clobbered, the operand scanner is ignoring them.

For now, I'm suspecting a bug in alias analysis because according to the alias
dumps, the variables are all considered global and addressable.  We are not
discovering that their address escape.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31036

Reply via email to