This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/13722] New: [3.4/3.5 regression] [ia64] Ada bootstrap failure
- From: "schwab at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Jan 2004 23:07:08 -0000
- Subject: [Bug bootstrap/13722] New: [3.4/3.5 regression] [ia64] Ada bootstrap failure
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Triggered by this change:
2004-01-15 Zack Weinberg <zack@codesourcery.com>
* config/ia64/ia64.md (*movti_internal): C output template
extracted to ia64.c.
(*movti_internal_reg): Delete.
(reload_inti, reload_outti): Use the correct mode on operand 2
in the first place, don't fix it up in the output template.
(movtf, reload_ointf, reload_outtf): New expanders.
(*movtf_internal): New define_insn_and_split.
* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
make static; do not hand TFmode CONST_DOUBLEs to split_double.
(ia64_split_tmode_move): New function, body mostly pulled
from ia64.md:*movti_internal.
(ia64_function_arg_words): New function, extracted common
logic from ia64_function_arg et seq.
(ia64_function_arg_offset): Likewise. Handle correctly the
case of a scalar quantity 16 bytes wide with only 8-byte alignment.
(ia64_function_arg, ia64_function_arg_partial_nregs)
(ia64_function_arg_advance): Use ia64_function_arg_words and
ia64_function_arg_offset.
(ia64_function_value): TCmode does not go in float regs.
(ia64_secondary_reload_class): Also handle TFmode.
* config/ia64/ia64-protos.h: Remove prototype for
ia64_split_timode; add prototype for ia64_split_tmode_move.
stage1/xgcc -Bstage1/ -B/usr/local/ia64-suse-linux/bin/ -c -g -O2 -gnatpg
-gnata -I- -I. -Iada -I../../gcc/ada ../../gcc/ada/a-elchha.adb -o
ada/a-elchha.o
+===========================GNAT BUG DETECTED==============================+
| 3.5.0 20040117 (experimental) (ia64-suse-linux-gnu) GCC error: |
| in push_secondary_reload, at reload.c:427 |
| Error detected at a-elchha.adb:104:8 |
(gdb) r
Starting program: /tmp/cvs/gcc-test-2004011604/Build/gcc/stage1/gnat1 -I- -I.
-Iada -I../../gcc/ada -quiet -dumpbase a-elchha.adb -g -gnatpg -gnata -O2
-gnatO ada/a-elchha.o ../../gcc/ada/a-elchha.adb
Breakpoint 1, fancy_abort (file=0x40000000013999a0 "../../gcc/reload.c",
line=427, function=0x40000000013999b8 "push_secondary_reload")
at ../../gcc/diagnostic.c:584
584 internal_error ("in %s, at %s:%d", function, trim_filename (file),
line);
(gdb) up
#1 0x4000000000e06a70 in push_secondary_reload (in_p=1, x=0x2000000000582da0,
opnum=1, optional=0, reload_class=GR_REGS, reload_mode=TImode,
type=RELOAD_FOR_INPUT_ADDRESS, picode=0x60000fffffff6ed8)
at ../../gcc/reload.c:427
427 abort ();
(gdb) l
422 Allow this when a reload_in/out pattern is being used. I.e.
assume
423 that the generated code handles this case. */
424
425 if (in_p && class == reload_class && icode == CODE_FOR_nothing
426 && t_icode == CODE_FOR_nothing)
427 abort ();
428
429 /* If we need a tertiary reload, see if we have one we can reuse or
else
430 make a new one. */
431
(gdb) p class
$1 = GR_REGS
(gdb) p x
$2 = 0x2000000000582da0
(gdb) pr
(mem:TI (plus:DI (reg/f:DI 12 r12)
(const_int 736 [0x2e0])) [17 buff+0 S16 A128])
--
Summary: [3.4/3.5 regression] [ia64] Ada bootstrap failure
Product: gcc
Version: 3.4.0
Status: UNCONFIRMED
Keywords: build
Severity: normal
Priority: P2
Component: bootstrap
AssignedTo: zack at codesourcery dot com
ReportedBy: schwab at suse dot de
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: ia64-linux
GCC host triplet: ia64-linux
GCC target triplet: ia64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13722