[Bug target/15550] New: [i386] ICE in extract_insn, at recog.c:2083
dannysmith at users dot sourceforge dot net
gcc-bugzilla@gcc.gnu.org
Fri May 21 10:03:00 GMT 2004
The following, compiled with -O1 results in ICE on i386-pc-mingw32,
with GCC-3.4.0.
-O0 and -O2 work fine.
On trunk, the code compiles at all optimisation levels
/* test1.c */
typedef struct _foo
{
unsigned long _bkgd;
} FOO;
void wbkgdset (FOO* foo, unsigned long ch)
{
unsigned long bkgdattr;
if ( (ch & 0xFFFF0000UL) == 0UL )
bkgdattr = 0x0000000UL;
else
bkgdattr = (ch & 0xFFFF0000UL);
foo->_bkgd = (ch | bkgdattr);
}
>gcc-3.4.0 -O1 -c test1.c
test1.c: In function `wbkgdset':
test1.c:17: error: unrecognizable insn:
(insn 36 11 23 0 (set (reg/v:SI 60 [ bkgdattr ])
(and:SI (reg/v:SI 59 [ ch ])
(const_int -65536 [0xffff0000]))) -1 (nil)
(nil))
test1.c:17: internal compiler error: in extract_insn, at recog.c:2083
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
If I simplify the if...else to:
bkgdattr = (ch & 0xFFFF0000UL);
there is no problem.
Danny
--
Summary: [i386] ICE in extract_insn, at recog.c:2083
Product: gcc
Version: 3.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dannysmith at users dot sourceforge dot net
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-mingw32
GCC host triplet: i686-pc-mingw32
GCC target triplet: i686-pc-mingw32
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15550
More information about the Gcc-bugs
mailing list