This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ia64 bootstrap failure with the reload-branch
- From: Steven Bosscher <stevenb at suse dot de>
- To: bernd dot schmidt at analog dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 23 Mar 2005 22:17:23 +0100
- Subject: ia64 bootstrap failure with the reload-branch
- Organization: SUSE Labs
Hi,
Bootstrap with the reload-branch dies on ia64 in stage0 while
building unwind-ia64.c:
./xgcc -B./ -B/usr/local/ia64-unknown-linux-gnu/bin/ -isystem /usr/local/ia64-unknown-linux-gnu/include -isystem /usr/local/ia64-unknown-linux-gnu/sys-include -L/abuild/stevenb/build/gcc/../ld -O2 -DIN_GCC -DUSE_LIBUNWIND_EXCEPTIONS -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -DUSE_GAS_SYMVER -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../reload-branch/gcc -I../../reload-branch/gcc/. -I../../reload-branch/gcc/../include -I../../reload-branch/gcc/../libcpp/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../reload-branch/gcc/config/ia64/unwind-ia64.c -o libgcc/./unwind-ia64.o
../../reload-branch/gcc/config/ia64/unwind-ia64.c: In function 'alloc_reg_state':
../../reload-branch/gcc/config/ia64/unwind-ia64.c:312: warning: pointer targets in passing argument 1 of 'atomic_alloc' differ in signedness
../../reload-branch/gcc/config/ia64/unwind-ia64.c: In function 'free_reg_state':
../../reload-branch/gcc/config/ia64/unwind-ia64.c:328: warning: pointer targets in passing argument 1 of 'atomic_free' differ in signedness
../../reload-branch/gcc/config/ia64/unwind-ia64.c: In function 'alloc_label_state':
../../reload-branch/gcc/config/ia64/unwind-ia64.c:345: warning: pointer targets in passing argument 1 of 'atomic_alloc' differ in signedness
../../reload-branch/gcc/config/ia64/unwind-ia64.c: In function 'free_label_state':
../../reload-branch/gcc/config/ia64/unwind-ia64.c:361: warning: pointer targets in passing argument 1 of 'atomic_free' differ in signedness
../../reload-branch/gcc/unwind.inc: In function '_Unwind_Backtrace':
../../reload-branch/gcc/unwind.inc:313: error: Attempt to delete prologue/epilogue insn:
(insn/f 137 136 138 0 ../../reload-branch/gcc/unwind.inc:285 (set (reg:DI 33 r35)
(reg:DI 320 b0)) -1 (nil)
(nil))
../../reload-branch/gcc/unwind.inc:313: internal compiler error: in propagate_one_insn, at flow.c:1689
Please submit a full bug report,
with preprocessed source if appropriate.
I've reduced the test case and attached it. I haven't looked into
this any further (I understand neither reload nor ia64 ;-), but if
it can't be reproduced on a cross, I can ask Andreas Schwab to look
at it a bit more...
Gr.
Steven
typedef enum
{
_URC_NO_REASON = 0,
_URC_FOREIGN_EXCEPTION_CAUGHT = 1,
_URC_FATAL_PHASE2_ERROR = 2,
_URC_FATAL_PHASE1_ERROR = 3,
_URC_NORMAL_STOP = 4,
_URC_END_OF_STACK = 5,
_URC_HANDLER_FOUND = 6,
_URC_INSTALL_CONTEXT = 7,
_URC_CONTINUE_UNWIND = 8
} _Unwind_Reason_Code;
struct _Unwind_Context { int i; };
typedef struct _Unwind_FrameState_d { int i; } _Unwind_FrameState;
typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
(struct _Unwind_Context *, void *);
extern void uw_update_context (struct _Unwind_Context *, _Unwind_FrameState *);
extern void uw_init_context_1 (struct _Unwind_Context *, void *);
extern _Unwind_Reason_Code uw_frame_state_for (struct _Unwind_Context *, _Unwind_FrameState *);
_Unwind_Reason_Code
_Unwind_Backtrace(_Unwind_Trace_Fn trace, void * trace_argument)
{
struct _Unwind_Context context;
_Unwind_Reason_Code code;
do { __builtin_unwind_init(); uw_init_context_1 (&context, __builtin_ia64_bsp ()); } while (0);
while (1)
{
_Unwind_FrameState fs;
code = uw_frame_state_for (&context, &fs);
if (code != _URC_NO_REASON && code != _URC_END_OF_STACK)
return _URC_FATAL_PHASE1_ERROR;
if ((*trace) (&context, trace_argument) != _URC_NO_REASON)
return _URC_FATAL_PHASE1_ERROR;
if (code == _URC_END_OF_STACK)
break;
uw_update_context (&context, &fs);
}
return code;
}