Bug 18685 - [4.0 Regression] Ada boostrap broken
Summary: [4.0 Regression] Ada boostrap broken
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 4.0.0
: P2 normal
Target Milestone: 4.0.0
Assignee: Not yet assigned to anyone
URL:
Keywords: build, ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2004-11-26 22:03 UTC by Laurent GUERBY
Modified: 2004-11-27 05:34 UTC (History)
5 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2004-11-26 22:04:29


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Laurent GUERBY 2004-11-26 22:03:03 UTC
Hi, I identified the patch that causes the Ada bootstrap
failure on x86 and x86_64 (at least):

../../xgcc -B../../ -c -g -O2 -fPIC      -W -Wall -gnatpg  s-stratt.adb -o
s-stratt.o
+===========================GNAT BUG DETECTED==============================+
| 4.0.0 20041123 (experimental) (i686-pc-linux-gnu) GCC error:             |
| in gen_lowpart_general, at rtlhooks.c:58                                 |
| Error detected at s-stratt.adb:671:1                                     |

works: cvs up -D "2004/11/24 00:06:17 UTC"
breaks: cvs up -D "2004/11/24 00:10:17 UTC"

date: 2004/11/24 00:08:17;  author: rth;  state: Exp;  lines: +11 -0
        * rtl.h (validate_subreg): Declare.
        * emit-rtl.c (validate_subreg): New.
        (gen_rtx_SUBREG): Use it.
        * simplify-rtx.c (simplify_subreg): Likewise.
        (simplify_gen_subreg): Likewise.  Remove duplicate asserts.
        * expr.c (emit_move_insn_1): Tidy complex move code.  Use memory
        fallback whenever gen_realpart/gen_imagpart would not be able to
        create SUBREGs.
Comment 1 Andrew Pinski 2004-11-26 22:04:29 UTC
Also on ppc-darwin and ppc-linux.
Comment 2 Andrew Pinski 2004-11-27 01:07:03 UTC
Should be fixed by:
2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* expmed.c (extract_bit_field): When extracting from non-integer mode,
	force a SUBREG into a register because we may be taking a further
	SUBREG of it.

Testing on ppc-darwin right now.
Comment 3 Andrew Pinski 2004-11-27 05:34:55 UTC
Fixed.