c++/7640: g++ 3.3 ICE: SEGV in integer_zerop

snyder@fnal.gov snyder@fnal.gov
Mon Aug 19 17:36:00 GMT 2002


>Number:         7640
>Category:       c++
>Synopsis:       g++ 3.3 ICE: SEGV in integer_zerop
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-illegal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 19 15:06:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     scott snyder
>Release:        3.3 20020819 (experimental)
>Organization:
<organization of PR author (multiple lines)>
>Environment:
System: Linux karma 2.4.9-13 #1 Tue Oct 30 20:11:04 EST 2001 i686 unknown
Architecture: i686

	<machine, os, target, libraries (multiple lines)>
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../egcs/configure --prefix=/usr/local/egcs --enable-threads=posix --enable-long-long : (reconfigured)  : (reconfigured) 
>Description:

g++ crashes when compiling the (invalid) code below:

$ gcc -c crash2.cc
crash2.cc: In function `void init()':
crash2.cc:5: error: parse error before `=' token
crash2.cc:4: internal compiler error: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
$

Here's where it's crashing:


Program received signal SIGSEGV, Segmentation fault.
integer_zerop (expr=0x0) at ../../egcs/gcc/tree.c:601
601	  STRIP_NOPS (expr);
(gdb) where
#0  integer_zerop (expr=0x0) at ../../egcs/gcc/tree.c:601
#1  0x08152fa7 in genrtl_do_stmt (t=0x40028840)
    at ../../egcs/gcc/c-semantics.c:451
#2  0x081542a9 in expand_stmt (t=0x40028840)
    at ../../egcs/gcc/c-semantics.c:805
#3  0x08153d2a in genrtl_compound_stmt (t=0x40189848)
    at ../../egcs/gcc/c-semantics.c:699
#4  0x08154268 in expand_stmt (t=0x40189848)
    at ../../egcs/gcc/c-semantics.c:813
#5  0x08153d2a in genrtl_compound_stmt (t=0x4018980c)
    at ../../egcs/gcc/c-semantics.c:699
#6  0x08154268 in expand_stmt (t=0x4018980c)
    at ../../egcs/gcc/c-semantics.c:813
#7  0x081225e5 in expand_body (fn=0x4018fcb0)
    at ../../egcs/gcc/cp/semantics.c:2454
#8  0x080d9d5e in yyparse () at parse.y:816



>How-To-Repeat:

-------------------------------------------------
void* obj;
void init ()
{
  do {  } while (0)
  obj = 0;
}

-------------------------------------------------
>Fix:
	<how to correct or work around the problem, if known (multiple lines)>
>Release-Note:
>Audit-Trail:
>Unformatted:
 SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public.
 SEND-PR: critical     GCC is completely not operational; no work-around known.
 SEND-PR: serious      GCC is not working properly; a work-around is possible.
 SEND-PR: non-critical Report indicates minor problem.
 SEND-PR: medium       The problem should be solved in the next release.
 SEND-PR: low          The problem should be solve in a future release.
 SEND-PR: doc-bug          The documentation is incorrect.
 SEND-PR: accepts-illegal  GCC fails to reject erroneous code.
 SEND-PR: rejects-legal    GCC gives an error message for correct code.
 SEND-PR: wrong-code       The machine code generated by gcc is incorrect.
 SEND-PR: ice-on-legal-code   GCC gives an Internal Compiler Error (ICE)
 SEND-PR:                     for correct code
 SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error
 SEND-PR: pessimizes-code     GCC misses an important optimization opportunity
 SEND-PR: sw-bug              Software bug of some other class than above
 SEND-PR: change-request      A feature in GCC is missing.
 SEND-PR: support             I need help with gcc.



More information about the Gcc-prs mailing list