Bug 8275 - [3.2 regression] ICE in simplify_subreg, at simplify-rtx.c:2452
Summary: [3.2 regression] ICE in simplify_subreg, at simplify-rtx.c:2452
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 3.2
: P3 normal
Target Milestone: 3.1.x/3.2.x
Assignee: Eric Botcazou
URL:
Keywords: ice-on-valid-code
: 7540 7878 8934 9020 9060 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-10-18 01:46 UTC by tom
Modified: 2004-07-17 00:30 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
tc-ppc.i.gz (44.51 KB, application/x-gzip )
2003-05-21 15:17 UTC, tom
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tom 2002-10-18 01:46:01 UTC
An internal compiler error occurs when optimization is turned on (Internal compiler error in simplify_subreg, at simplify-rtx.c:2452). 

gcc -v -save-temps output:

Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.2/specs
Configured with: /netrel/src/gcc-3.2-1/configure --enable-languages=c,c++,f77,java --enable-libgcj --enable-threads=posix --with-system-zlib --enable-nls --without-included-gettext --enable-interpreter --disable-sjlj-exceptions --disable-version-specific-runtime-libs --enable-shared --build=i686-pc-linux --host=i686-pc-cygwin --target=i686-pc-cygwin --enable-haifa --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --includedir=/nonexistent/include --libexecdir=/usr/sbin
Thread model: posix
gcc version 3.2 20020818 (prerelease)
 /usr/lib/gcc-lib/i686-pc-cygwin/3.2/cpp0.exe -lang-c -v -I. -I../../binutils-2.13/gas -I. -I. -I../../binutils-2.13/gas -I../bfd -I../../binutils-2.13/gas/config -I../../binutils-2.13/gas/../include -I../../binutils-2.13/gas/.. -I../../binutils-2.13/gas/../bfd -I../../binutils-2.13/gas/../intl -I../intl -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=0 -D__GXX_ABI_VERSION=102 -D_X86_=1 -D_X86_=1 -Asystem=winnt -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -Acpu=i386 -Amachine=i386 -Di386 -D__i386 -D__i386__ -D__tune_i686__ -D__tune_pentiumpro__ -D__tune_pentium2__ -D__tune_pentium3__ -D__stdcall=__attribute__((__stdcall__)) -D__fastcall=__attribute__((__fastcall__)) -D__cdecl=__attribute__((__cdecl__)) -D_stdcall=__attribute__((__stdcall__)) -D_fastcall=__attribute__((__fastcall__)) -D_cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x)) -D__i386__ -D__i386 -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -isystem /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../include/w32api -isystem /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/lib/../../include/w32api -DHAVE_CONFIG_H -D_GNU_SOURCE -DLOCALEDIR="/usr/local/ppc/share/locale" ../../binutils-2.13/gas/config/tc-ppc.c -W -Wall -Wstrict-prototypes -Wmissing-prototypes tc-ppc.i
GNU CPP version 3.2 20020818 (prerelease) (cpplib) (80386, BSD syntax)
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/i686-pc-cygwin/include"
ignoring duplicate directory "."
ignoring duplicate directory "."
ignoring duplicate directory "../../binutils-2.13/gas"
ignoring duplicate directory "/usr/i686-pc-cygwin/lib/../../include/w32api"
#include "..." search starts here:
#include <...> search starts here:
 .
 ../../binutils-2.13/gas
 ../bfd
 ../../binutils-2.13/gas/config
 ../../binutils-2.13/include
 ../../binutils-2.13
 ../../binutils-2.13/bfd
 ../../binutils-2.13/intl
 ../intl
 /usr/include/w32api
 /usr/lib/gcc-lib/i686-pc-cygwin/3.2/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i686-pc-cygwin/3.2/cc1.exe -fpreprocessed tc-ppc.i -quiet -dumpbase tc-ppc.c -g -O2 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -version -o tc-ppc.s
GNU CPP version 3.2 20020818 (prerelease) (cpplib) (80386, BSD syntax)
GNU C version 3.2 20020818 (prerelease) (i686-pc-cygwin)
	compiled by GNU C version 3.2 20020815 (prerelease).
../../binutils-2.13/gas/config/tc-ppc.c: In function `md_assemble':
../../binutils-2.13/gas/config/tc-ppc.c:2172: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2174: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2179: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2181: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2186: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2188: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2193: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:2195: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c: In function `md_apply_fix3':
../../binutils-2.13/gas/config/tc-ppc.c:5374: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:5381: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:5388: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:5395: warning: right shift count >= width of type
../../binutils-2.13/gas/config/tc-ppc.c:5523: Internal compiler error in simplify_subreg, at simplify-rtx.c:2452
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions

Release:
gcc-3.2

Environment:
cygwin/windows 2000

How-To-Repeat:
The preprocessed c-code input is attached. The error occurs with the following command line: 
     gcc -c -O tc-ppc.i

The error does not occur when optimization is disabled.
Comment 1 Volker Reichelt 2002-11-22 16:07:07 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Confirmed.
    
    The problem boils down to the following line:
    
    unsigned int foo (unsigned int u) { return (u >> 32) & 0xffff; }
    
    Compiling this with "gcc -O -c" on i686-pc-linux-gnu crashes gcc 3.1 - 3.2.1.
    gcc 2.95.x, 3.0.x and mainline are not affected.
Comment 2 Eric Botcazou 2002-11-23 03:28:45 UTC
Responsible-Changed-From-To: unassigned->ebotcazou
Responsible-Changed-Why: Backporting.
Comment 3 Eric Botcazou 2002-11-24 14:22:00 UTC
State-Changed-From-To: analyzed->closed
State-Changed-Why: Fixed.
Comment 4 Eric Botcazou 2002-11-24 22:14:21 UTC
From: ebotcazou@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: optimization/8275
Date: 24 Nov 2002 22:14:21 -0000

 CVSROOT:	/cvs/gcc
 Module name:	gcc
 Branch: 	gcc-3_2-branch
 Changes by:	ebotcazou@gcc.gnu.org	2002-11-24 14:14:20
 
 Modified files:
 	gcc            : ChangeLog combine.c 
 
 Log message:
 	PR optimization/8275
 	
 	Merge from mainline:
 	2002-09-19  Dale Johannesen <dalej@apple.com>
 	
 	* combine.c (make_extraction): Don't create
 	invalid subreg.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.13152.2.657.2.148&r2=1.13152.2.657.2.149
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/combine.c.diff?cvsroot=gcc&only_with_tag=gcc-3_2-branch&r1=1.267.2.13&r2=1.267.2.13.2.1