Bug#457104: gcc-4.2: [hppa] ICE when building cfitsio3
Package: gcc-4.2
Version: 4.2.2-4
Severity: important
Hi,
cfisio3 FTBFS on hppa with a gcc ICE:
cc -c -g -O2 -D_REENTRANT -DgFortran -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MATH_H=1 -DHAVE_LIMITS_H=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DHAVE_FTRUNCATE=1 -DHAVE_LONGLONG=1 -DHAVE_SHMEM_SERVICES=1 -DHAVE_NET_SERVICES=1 eval_y.c
/usr1/local/share/bison.simple: In function 'ffparse':
/usr1/local/share/bison.simple:692: internal compiler error: in delete_output_reload, at reload1.c:7958
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions,
see <URL:file:///usr/share/doc/gcc-4.2/README.Bugs>.
make[2]: *** [eval_y.o] Error 1
make[2]: Leaving directory `/build/buildd/cfitsio3-3.040'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/build/buildd/cfitsio3-3.040'
make: *** [build-stamp] Error 2
It happens with -O2 or -O3, but not with -O1. gcc-4.1 is not affected.
Reduced testcase attached.
Cheers,
Aurelien
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: hppa (parisc)
Kernel: Linux 2.6.18-4-parisc
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages gcc-4.2 depends on:
ii binutils 2.18.1~cvs20071027-2 The GNU assembler, linker and bina
ii cpp-4.2 4.2.2-4 The GNU C preprocessor
ii gcc-4.2-base 4.2.2-4 The GNU Compiler Collection (base
ii libc6 2.7-4 GNU C Library: Shared libraries
ii libgcc4 4.2.2-4 GCC support library
ii libgomp1 4.2.2-4 GCC OpenMP (GOMP) support library
Versions of packages gcc-4.2 recommends:
ii libc6-dev 2.7-4 GNU C Library: Development Librari
-- no debconf information
typedef struct
{
int type;
} Node;
typedef struct
{
Node *Nodes;
} ParseData;
typedef enum
{
sum_fct,
max1_fct,
} funcOp;
extern ParseData gParse;
typedef union
{
int Node;
char str[256];
} FFSTYPE;
static const char fftranslate[] = { 0 };
static const short ffpact[] = { -32768 };
static const short ffcheck[] = { 1 };
int ffchar;
ffparse ()
{
int ffstate;
int ffn;
int ffchar1 = 0;
FFSTYPE ffvsp[100];
short *ffss;
FFSTYPE ffval;
ffnewstate:
ffss = (short *) __builtin_alloca (100);
ffn = ffpact[ffstate];
if (ffchar == -2)
{
ffchar = fflex ();
ffchar1 = ((unsigned) (ffchar) <= 288 ? fftranslate[ffchar] : 61);
}
if (ffn < 0 || ffn > 1457 || ffcheck[ffn] != ffchar1)
ffreduce:
switch (ffn)
{
case 54:
{
if (((ffvsp[-2].str)[0] < 'S' ? -1 : (ffvsp[-2].str)[0] >
'S' ? 1 : strcmp ((ffvsp[-2].str), "SUM(")) == 0)
New_Func (gParse.Nodes[ffvsp[-1].Node].type, sum_fct, 1,
ffvsp[-1].Node, 0, 0, 0, 0, 0, 0);
if ((((ffvsp[-2].str)[0] <
'A' ? 1 : strcmp ((ffvsp[-2].str),
"ACCUM(")) == 0)
&& (gParse.Nodes[ffvsp[-1].Node].type == 259))
{
}
else
if (((ffvsp[-2].str)[0] < 'A' ? -1 : (ffvsp[-2].str)[0] >
'A' ? 1 : strcmp ((ffvsp[-2].str), "ABS(")) == 0)
New_Func (gParse.Nodes[ffvsp[-1].Node].type, max1_fct, 1,
ffvsp[-1].Node, 0, 0, 0, 0, 0, 0);
if (gParse.Nodes[ffvsp[-1].Node].type != 260)
if ((ffval.Node) < 0)
goto ffreduce;
}
}
goto ffnewstate;
}
Reply to: