[parisc-linux] [hppa-linux, gcc-3.2 regression] ICE when optimizing inline code

tausq@debian.org tausq@debian.org
Wed, 19 Feb 2003 22:42:11 -0800


>Submitter-Id:	net
>Originator:	Randolph Chung
>Organization:	Debian
>Confidential:	no
>Synopsis:	[hppa-linux, gcc-3.2 regression] ICE when optimizing inline code
>Severity:	serious
>Priority:	medium
>Category:	optimization
>Class:		ice-on-legal-code
>Release:	3.2.3 20030210 (Debian prerelease) (Debian testing/unstable)
>Environment:
System: Linux legolas 2.4.20-pa25 #115 Sun Feb 9 20:54:18 PST 2003 parisc unknown unknown GNU/Linux
Architecture: parisc

	<machine, os, target, libraries (multiple lines)>
host: hppa-unknown-linux-gnu
build: hppa-unknown-linux-gnu
target: hppa-unknown-linux-gnu
configured with: ../src/configure -v --enable-languages=c,c++,f77,proto,pascal,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-objc-gc hppa-linux
>Description:
see below

code works with gcc-3.0 and gcc-3.3 snapshot
also works with gcc-3.2 with -O1

>How-To-Repeat:
-------8< cut here 8<---------
inline int fixfloor (long x) { if (x >= 0) return (x >> 16); else return ~((~x) >> 16); }
inline int fixtoi (long x) { return fixfloor(x) + ((x & 0x8000) >> 15); }
int foo(long x, long y) { return fixtoi(x*y); }
-------8< cut here 8<---------

legolas% gcc-3.2 -O2 -c bug.i
bug.i: In function `foo':
bug.i:3: 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.

>Fix:
	unknown