From: wilson Date: Thu, 28 Oct 1999 18:29:10 +0000 (+0000) Subject: Fix stdarg bugs with MIPS EABI that caused newlib/libstdc++ build failures. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=81ce1dd0d3240c8765c78c3d0ef934987078b21e;p=platform%2Fupstream%2Flinaro-gcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30245 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d4f2b4ee..0cee76f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Thu Oct 28 10:02:00 1999 Jim Wilson + * 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. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 9be617f..dc19e8b 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -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;