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.
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.
Responsible-Changed-From-To: unassigned->ebotcazou Responsible-Changed-Why: Backporting.
State-Changed-From-To: analyzed->closed State-Changed-Why: Fixed.
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