This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
gcc 3.1 ICE in make_label_edge on hppa1.1-hp-hpux10.20--bootstrap fails
- To: gcc at gcc dot gnu dot org
- Subject: gcc 3.1 ICE in make_label_edge on hppa1.1-hp-hpux10.20--bootstrap fails
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Tue, 17 Jul 2001 12:12:02 -0400 (EDT)
The following ICE occurs building gcc 3.1 on hppa1.1-hp-hpux10.20 with
yesterdays cvs source:
/xxx/gnu/gcc-3.1/objdir/gcc/xgcc -B/xxx/gnu/gcc-3.1/objdir/gcc/ -nostdinc++ -L/xxx/gnu/gcc-3.1/objdir/hppa1.1-hp-hpux10.20/libstdc++-v3/src -L/xxx/gnu/gcc-3.1/objdir/hppa1.1-hp-hpux10.20/libstdc++-v3/src/.libs -B/usr/local/hppa1.1-hp-hpux10.20/bin/ -B/usr/local/hppa1.1-hp-hpux10.20/lib/ -isystem /usr/local/hppa1.1-hp-hpux10.20/include -I../../../../libstdc++-v3/../gcc -I../../../../libstdc++-v3/../include -I/xxx/gnu/gcc-3.1/objdir/hppa1.1-hp-hpux10.20/libstdc++-v3/include/hppa1.1-hp-hpux10.20 -I/xxx/gnu/gcc-3.1/objdir/hppa1.1-hp-hpux10.20/libstdc++-v3/include -I../../../../libstdc++-v3/libsupc++ -g -O2 -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -g -c ../../../../libstdc++-v3/libsupc++/eh_personality.cc
cc1plus: warning: changing search order for system directory "/usr/local/hppa1.1-hp-hpux10.20/include"
cc1plus: warning: as it has already been specified as a system directory
In file included from ../../../../libstdc++-v3/libsupc++/eh_personality.cc:37:
../../../../gcc/unwind-pe.h: In function `unsigned int
size_of_encoded_value(unsigned char)':
../../../../gcc/unwind-pe.h:77: warning: control reaches end of non-void
function
../../../../gcc/unwind-pe.h: In function `_Unwind_Ptr
base_of_encoded_value(unsigned char, _Unwind_Context*)':
../../../../gcc/unwind-pe.h:105: warning: control reaches end of non-void
function
../../../../gcc/unwind-pe.h: In function `const unsigned char*
read_encoded_value_with_base(unsigned char, unsigned int, const unsigned
char*, _Unwind_Ptr*)':
../../../../gcc/unwind-pe.h:127: warning: `_Unwind_Ptr result' might be used
uninitialized in this function
../../../../libstdc++-v3/libsupc++/eh_personality.cc: In function `void
__cxa_call_unexpected(_Unwind_Exception*)':
../../../../libstdc++-v3/libsupc++/eh_personality.cc:403: warning: new
declaration `void __cxa_call_unexpected(_Unwind_Exception*)'
../../../../libstdc++-v3/libsupc++/eh_personality.cc:403: warning: ambiguates
built-in declaration `void __cxa_call_unexpected(void*)'
../../../../libstdc++-v3/libsupc++/eh_personality.cc: In function `void
__cxa_call_unexpected(_Unwind_Exception*)':
../../../../libstdc++-v3/libsupc++/eh_personality.cc:443: Internal error:
Segmentation fault
The error occurs here:
ion&) void __cxa_call_unexpected(_Unwind_Exception*)
Program received signal SIGSEGV, Segmentation fault.
make_label_edge (edge_cache=0x400b0908, src=0x400b4970, label=0x0, flags=20)
at ../../gcc/flow.c:1419
1419 if (GET_CODE (label) != CODE_LABEL)
The backtrace is a bit strange:
(gdb) bt
#0 make_label_edge (edge_cache=0x400b0908, src=0x400b4970, label=0x0,
flags=20) at ../../gcc/flow.c:1419
#1 0x29e528 in make_label_edge (edge_cache=0x400b0908, src=0x400b4970,
label=0x0, flags=20) at ../../gcc/flow.c:1430
#2 0x29df4c in make_edges (label_value_list=0x7ab49100)
at ../../gcc/flow.c:1221
#3 0x29cd30 in find_basic_blocks (f=0x7ab58d60, nregs=1074481520, file=0x0)
at ../../gcc/flow.c:550
#4 0x1a504c in finish_eh_generation () at ../../gcc/except.c:2374
#5 0x22c4b8 in rest_of_compilation (decl=0x7adcbd20)
at ../../gcc/toplev.c:2907
...
Frame 2 doesn't match up with a call so the program may have gone wild.
If I was to guess, I think the failure is caused by Jan Hubicka's patch
to delete unnecessary labels. Note that label=0x0 in the last call to
make_label_edge.
On a different subject, when are we going to get a fix to the "changing
search order" problem? This was noted well over a week ago and affects
different system configurations with varying severity. I believe that
Harinath's comments <http://gcc.gnu.org/ml/gcc/2001-07/msg01163.html>
are bang on. In my case, the install directory
"/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.20/3.1" exists, and this causes
the cpp pass to find "/usr/local/hppa1.1-hp-hpux10.20/include" as
"/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.20/3.1/../../../../hppa1.1-hp-hpux10.20/include"
and makes the "-isystem" in the command redundant.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)