mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-16 14:21:14 +08:00
Fix stdarg bugs with MIPS EABI that caused newlib/libstdc++ build failures.
* config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg. (function_arg_pass_by_reference): Check for a NULL pointer in cum. From-SVN: r30245
This commit is contained in:
parent
7ab282a5a0
commit
c9fc373cf0
@ -1,5 +1,8 @@
|
||||
Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
|
||||
(function_arg_pass_by_reference): Check for a NULL pointer in cum.
|
||||
|
||||
* config/i960/i960.c (i960_va_start): New locals base, num.
|
||||
Use INDIRECT_REF instead of ARRAY_REF on valist.
|
||||
(i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
|
||||
|
@ -4199,7 +4199,7 @@ mips_va_arg (valist, type)
|
||||
if (r != addr_rtx)
|
||||
emit_move_insn (addr_rtx, r);
|
||||
|
||||
emit_jump (gen_jump (lab_over));
|
||||
emit_jump (lab_over);
|
||||
emit_barrier ();
|
||||
emit_label (lab_false);
|
||||
}
|
||||
@ -7447,7 +7447,9 @@ function_arg_pass_by_reference (cum, mode, type, named)
|
||||
??? This is really a kludge. We should either fix GCC so that such
|
||||
a situation causes an abort and then do something in the MIPS port
|
||||
to prevent it, or add code to function.c to properly handle the case. */
|
||||
if (FUNCTION_ARG (*cum, mode, type, named) != 0
|
||||
/* ??? cum can be NULL when called from mips_va_arg. The problem handled
|
||||
here hopefully is not relevant to mips_va_arg. */
|
||||
if (cum && FUNCTION_ARG (*cum, mode, type, named) != 0
|
||||
&& MUST_PASS_IN_STACK (mode, type))
|
||||
return 1;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user