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.
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);
}
??? 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;