[3.3 regression] [parisc-linux] ICE when building lesstif1 at -O1/O2

Randolph Chung Randolph Chung <tausq@debian.org>
Mon, 17 Mar 2003 21:34:40 -0800

>Submitter-Id:	net
>Originator:	Randolph Chung <tausq@debian.org>
>Organization:	Debian
>Confidential:	no
>Synopsis:	[3.3 regression] [parisc-linux] ICE when building lesstif1 at -O1/O2
>Severity:	serious
>Priority:	medium
>Category:	optimization
>Class:		ice-on-legal-code
>Release:	3.3 20030309 (Debian prerelease) (Debian testing/unstable)
System: Linux gsyprf11.external.hp.com 2.4.20-pa18-UP #1 Sat Jan 4 22:06:52 PST 2003 parisc64 unknown unknown GNU/Linux
Architecture: parisc64

	<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,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-sjlj-exceptions --enable-clocale=gnu --enable-debug --enable-objc-gc hppa-linux
Test program below is extracted from lesstif1 (v0.93.36). 
Compiles fine without -O, but with -O1 or -O2 it aborts. The code 
compiles fine with gcc-3.2.3

bash-2.05b# gcc -O1 -v -c bug.c
Reading specs from /usr/lib/gcc-lib/hppa-linux/3.3/specs
Configured with: ../src/configure -v --enable-languages=c,c++,f77,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-sjlj-exceptions --enable-clocale=gnu --enable-debug --enable-objc-gc hppa-linux
Thread model: posix
gcc version 3.3 20030309 (Debian prerelease)
 /usr/lib/gcc-lib/hppa-linux/3.3/cc1 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 bug.c -quiet -dumpbase bug.c -auxbase bug -O1 -version -o /tmp/ccrpBE2v.s
GNU C version 3.3 20030309 (Debian prerelease) (hppa-linux)
        compiled by GNU C version 3.3 20030309 (Debian prerelease).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring nonexistent directory "/usr/hppa-linux/include"
#include "..." search starts here:
#include <...> search starts here:
End of search list.
bug.c: In function `get_modifier_mapping':
bug.c:44: internal compiler error: Aborted
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

	gcc -O1 -c bug.c

------- 8< bug.c 8<------
typedef struct {
	int max_keypermod;
} XModifierKeymap;

#define XK_Meta_L               0xFFE7  /* Left meta */
#define XK_Meta_R               0xFFE8  /* Right meta */
#define XK_Alt_L                0xFFE9  /* Left alt */
#define XK_Alt_R                0xFFEA  /* Right alt */
#define Mod1Mask            (1<<3)

unsigned int blah(void);

static int
get_modifier_mapping(void *Dsp)
    XModifierKeymap *mk;
    unsigned int ModifierKeysym;
    int ModifierSet, SetIndex, SetSize;
    int AltMask = Mod1Mask;

    SetSize = mk->max_keypermod;

    for (ModifierSet = 0; ModifierSet < 8; ModifierSet++)
	for (SetIndex = 0; SetIndex < SetSize; SetIndex++)
	    ModifierKeysym = blah();
	    switch (ModifierKeysym)
	    case XK_Meta_L:
	    case XK_Meta_R:
		AltMask = 1L << ModifierSet;
		goto bailout;
	    case XK_Alt_L:
	    case XK_Alt_R:
		AltMask = 1L << ModifierSet;
		goto bailout;

    return AltMask;
------- 8< bug.c 8<------