------- Additional Comments From uweigand at gcc dot gnu dot org  2005-02-14 
22:50 -------
(In reply to comment #5)

> The error occurs when building this with
>   gnat1 -I<path-to-srcdir>/gcc/ada -O2 pr19865.adb
> (I've tested a gnat1 configured for s390-ibm-linux.)

I'm sorry, I have mixed up the include statements here.
Using this line, I do not get an ICE either.  I do get 
the ICE when using instead
  gnat1 -I<path-to-builddir>/gcc/ada/rts -O2 pr19865.adb
(after I've built the Ada runtime library, of course).

This different include apparently causes gnat1 to use a
different method of exception handling, which is enough
of a difference to cause the ICE to vanish.


As to what causes the bug, as Andrew said the SRA pass
introduces a new temporary C.56 (in my case C.58), and
like in the other test case, the red-phi pass generates
a virtual operand (a VUSE in this case) for an unrenamed
C.58 in a function call:
<L4>:;
  #   VUSE <C.8_13>;
  #   VUSE <pr19865__no_argument_101>;
  #   VUSE <pr19865__cache_args__last_valX_102>;
  #   VUSE <pr19865__cache_args__tableX_103>;
  #   VUSE <FRAME.13_163>;
  #   VUSE <C.7_51>;
  #   VUSE <TMT.42_164>;
  #   VUSE <TMT.43_165>;
  #   VUSE <TMT.45_166>;
  #   VUSE <C.58>;
  __gnat_rcheck_05 ("pr19865.adb", 37);


This subsequently aborts.

-- 


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

Reply via email to