This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

gcc 3.1 ICE in make_label_edge on hppa1.1-hp-hpux10.20--bootstrap fails


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]