irix 6.5 bootstrap failure on trunk: g++ error while configuring libstdc++-v3
Jeffrey Oldham
oldham@codesourcery.com
Thu Apr 26 09:01:00 GMT 2001
Applying the attached patch permits a Linux->mips-sgi-irix6.5 cross
compiler to successfully compile the conftest.ii given in
http://gcc.gnu.org/ml/gcc-bugs/2001-04/msg00609.html .
The patch does two things:
1) It reverses a portion of Jason Merill's 24Apr change to gcc/except.c.
2) It fixes two gcc warnings.
The first change worries me. In the unpatched code, `cleanup' can be
used even if it is a null pointer. I added a test for a null pointer,
but a more correct solution is desired.
I defer committing this patch or a variant to Jason Merrill, who
better understands the exception handler code. Saturday, I'll test it
and commit it if no action has been taken.
Thanks,
Jeffrey D. Oldham
oldham@codesourcery.com
Index: except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.152
diff -c -p -r1.152 except.c
*** except.c 2001/04/25 00:23:10 1.152
--- except.c 2001/04/26 15:54:02
*************** resolve_fixup_regions ()
*** 1112,1117 ****
--- 1112,1119 ----
if (j > n)
abort ();
+ if (cleanup == (struct eh_region *) 0)
+ abort ();
fixup->u.fixup.real_region = cleanup->outer;
}
}
*************** finish_eh_generation ()
*** 2340,2346 ****
/* These registers are used by the landing pads. Make sure they
have been generated. */
get_exception_pointer ();
! get_exception_filter ();
/* Construct the landing pads. */
--- 2342,2348 ----
/* These registers are used by the landing pads. Make sure they
have been generated. */
get_exception_pointer ();
! cfun->eh->filter = gen_reg_rtx (word_mode);
/* Construct the landing pads. */
*************** output_function_exception_table ()
*** 3566,3572 ****
funcdef_number = (USING_SJLJ_EXCEPTIONS
? sjlj_funcdef_number
! : current_funcdef_number);
exception_section ();
--- 3568,3574 ----
funcdef_number = (USING_SJLJ_EXCEPTIONS
? sjlj_funcdef_number
! : (int) current_funcdef_number);
exception_section ();
More information about the Gcc-bugs
mailing list