Bug 131542 - "unrecognizable insn" error by GCC when compiling asl
Summary: "unrecognizable insn" error by GCC when compiling asl
Status: VERIFIED FIXED
Alias: None
Product: SUSE Linux 10.1
Classification: openSUSE
Component: Development (show other bugs)
Version: unspecified
Hardware: S/390 Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Michael Matz
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-31 12:16 UTC by Joerg Reuter
Modified: 2005-12-16 15:54 UTC (History)
1 user (show)

See Also:
Found By: SUSE Technical Services
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Test case (4.62 KB, text/x-csrc)
2005-10-31 12:21 UTC, Joerg Reuter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joerg Reuter 2005-10-31 12:16:09 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.
Comment 1 Joerg Reuter 2005-10-31 12:21:08 UTC
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.)
Comment 2 Michael Matz 2005-11-07 18:39:55 UTC
Should be fixed with the new compiler, but hasn't yet rebuilt.
Comment 3 Michael Matz 2005-11-07 18:40:19 UTC
Grr, forgot marking as FIXED.
Comment 4 Ihno Krumreich 2005-12-16 15:54:53 UTC
Compiles now. -> closed.