This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/19865] [4.0 Regression] ice / gnat bug detected.
- From: "uweigand at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Feb 2005 22:50:38 -0000
- Subject: [Bug ada/19865] [4.0 Regression] ice / gnat bug detected.
- References: <20050209180751.19865.pluto@pld-linux.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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