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

           Summary: internal compiler error: in dwarf2out_var_location, at
                    dwarf2out.c:21983
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ubiz...@gmail.com
                CC: ja...@gcc.gnu.org
            Target: alpha-linux-gnu


Revision 171033 [1] breaks bootstrap on alpha:

gmake[4]: Entering directory
`/space/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared  --mode=compile
/home/uros/gcc-build/./gcc/xgcc -shared-libgcc -B/home/uros/gcc-build/./gcc
-nostdinc++ -L/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/src
-L/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/usr/local/alphaev68-unknown-linux-gnu/bin/
-B/usr/local/alphaev68-unknown-linux-gnu/lib/ -isystem
/usr/local/alphaev68-unknown-linux-gnu/include -isystem
/usr/local/alphaev68-unknown-linux-gnu/sys-include   
-I/home/uros/gcc-svn/trunk/libstdc++-v3/../gcc
-I/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/include/alphaev68-unknown-linux-gnu
-I/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/include
-I/home/uros/gcc-svn/trunk/libstdc++-v3/libsupc++  -fno-implicit-templates
-prefer-pic -Wall -Wextra -Wwrite-strings -Wcast-qual 
-fdiagnostics-show-location=once  -ffunction-sections -fdata-sections  -g -O2
-D_GNU_SOURCE -mieee  -c -o eh_alloc.lo
../../../../gcc-svn/trunk/libstdc++-v3/libsupc++/eh_alloc.cc
libtool: compile:  /home/uros/gcc-build/./gcc/xgcc -shared-libgcc
-B/home/uros/gcc-build/./gcc -nostdinc++
-L/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/src
-L/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/usr/local/alphaev68-unknown-linux-gnu/bin/
-B/usr/local/alphaev68-unknown-linux-gnu/lib/ -isystem
/usr/local/alphaev68-unknown-linux-gnu/include -isystem
/usr/local/alphaev68-unknown-linux-gnu/sys-include
-I/home/uros/gcc-svn/trunk/libstdc++-v3/../gcc
-I/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/include/alphaev68-unknown-linux-gnu
-I/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/include
-I/home/uros/gcc-svn/trunk/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall
-Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once
-ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -mieee -c
../../../../gcc-svn/trunk/libstdc++-v3/libsupc++/eh_alloc.cc  -fPIC -DPIC -o
eh_alloc.o
../../../../gcc-svn/trunk/libstdc++-v3/libsupc++/eh_alloc.cc: In function
‘void* __cxxabiv1::__cxa_allocate_exception(std::size_t)’:
../../../../gcc-svn/trunk/libstdc++-v3/libsupc++/eh_alloc.cc:138:1: internal
compiler error: in dwarf2out_var_location, at dwarf2out.c:21983
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
gmake[4]: *** [eh_alloc.lo] Error 1
gmake[4]: Leaving directory
`/space/uros/gcc-build/alphaev68-unknown-linux-gnu/libstdc++-v3/libsupc++'

The ICE can be triggered with a cross to alpha-linux-gnu with attached test.

~/gcc-build-alpha/gcc/cc1plus -O2 -g eh_alloc.ii

../../../../gcc-svn/trunk/libstdc++-v3/libsupc++/eh_alloc.cc: In function
‘void* __cxxabiv1::__cxa_allocate_exception(std::size_t)’:
../../../../gcc-svn/trunk/libstdc++-v3/libsupc++/eh_alloc.cc:138:1: internal
compiler error: in dwarf2out_var_location, at dwarf2out.c:21983
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

gdb session:

(gdb) up
#1  0x00000000006f1f42 in dwarf2out_var_location (loc_note=0x2aaaaee3a680)
    at ../../gcc-svn/trunk/gcc/dwarf2out.c:21979
21979          gcc_assert (prev
(gdb) li
21974        = ggc_alloc_cleared_call_arg_loc_node ();
21975          rtx prev = prev_real_insn (loc_note), x;
21976          ca_loc->call_arg_loc_note = loc_note;
21977          ca_loc->next = NULL;
21978          ca_loc->label = last_label;
21979          gcc_assert (prev
21980              && (CALL_P (prev)
21981                  || (NONJUMP_INSN_P (prev)
21982                  && GET_CODE (PATTERN (prev)) == SEQUENCE
21983                  && CALL_P (XVECEXP (PATTERN (prev), 0, 0)))));
(gdb) p debug_rtx (prev)
(const_int 2 [0x2])


[1] http://gcc.gnu.org/viewcvs?view=revision&revision=171033

Reply via email to