From: SourceForge.net <no...@so...> - 2004-07-26 11:12:16
|
Bugs item #954548, was opened at 2004-05-16 06:49 Message generated for change (Settings changed) made by dannysmith You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=954548&group_id=2435 Category: gcc Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: vlada (vladakk) Assigned to: Danny Smith (dannysmith) Summary: gcc: internal compiler error: in extract_insn Initial Comment: internal compiler error: in extract_insn ---------------------------------------------------------------------- Comment By: Danny Smith (dannysmith) Date: 2004-05-16 20:11 Message: Logged In: YES user_id=11494 Thanks for the detailed information on the bug. It really does help. Confirmed at -O1. Here is reduced testcase: /* 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); } D:\>gcc -O1 -S -Wall 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. The testcase compiles okay at -O0 and at -O2 and -O3. It also compiles OK if you clean up the if...else condition to simply bkgdattr = (ch & 0xFFFF0000UL); I'll forward the bug report to GCC bugzilla Danny ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=954548&group_id=2435 |