]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix stdarg bugs with MIPS EABI that caused newlib/libstdc++ build failures.
authorJim Wilson <wilson@cygnus.com>
Thu, 28 Oct 1999 18:29:10 +0000 (18:29 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 28 Oct 1999 18:29:10 +0000 (11:29 -0700)
* 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

gcc/ChangeLog
gcc/config/mips/mips.c

index d4f2b4eece1c94ecf3cdb1c8371880ac9de76360..0cee76fe6e4c602a7fec23c7dde5edf8a9da2d62 100644 (file)
@@ -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.
index 9be617f94a44e2c5c0d9a5004f62e4aa4c6e6f76..dc19e8b44d282e171e029c04ccc9918f59961a7e 100644 (file)
@@ -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;