Bugzilla – Bug 131542
"unrecognizable insn" error by GCC when compiling asl
Last modified: 2005-12-16 15:54:53 UTC
Compiling "asl" results in an internal compiler error on 31-bit mode S/390 (64-bit mode is not affected, I cannot reproduce it on i386, either.) I've isolated the code fragment GCC chokes on and will attach it in a minute.
Created attachment 56000 [details] Test case This is the (cleaned-up) output of gcc -E for the failing source code. What happens is: # gcc -O2 -fmessage-length=0 -Wall -fno-strict-aliasing -DCHARSET_ISO8859_1 -DSTDINCLUDES=\"/usr/include/asl\" -DLIBDIR=\"/usr/lib/asl\" -c failing-compress-line.c -o failing-compress-line.o failing-compress-line.c: In function ‘CompressLine’: failing-compress-line.c:36: error: unrecognizable insn: (insn 186 131 132 11 (set (reg/f:SI 98) (plus:SI (reg/f:SI 107 [ Line ]) (const_int 1 [0x1]))) -1 (nil) (nil)) failing-compress-line.c:36: internal compiler error: in extract_insn, at recog.c:2084 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.suse.de/feedback> for instructions. # rpm -q gcc gcc-4.1.0_20051024-4 # It does succeed when turning off optimization. static unsigned char CompressLine_NErl(char ch) has to be called in the if() clause below the strcmp()s, otherwise the source would compile. (The source code is somewhat strange, as it has been created by a Pascal to C converter.)
Should be fixed with the new compiler, but hasn't yet rebuilt.
Grr, forgot marking as FIXED.
Compiles now. -> closed.