This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/83487] [8 Regression] ICE in expand_call, at calls.c:4098


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83487

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
It's this change:

@@ -5660,10 +5668,12 @@ store_one_arg (struct arg_data *arg, rtx argblock, int
flags,
        }
    }

-      emit_push_insn (arg->value, arg->mode, TREE_TYPE (pval), size_rtx,
-             parm_align, partial, reg, excess, argblock,
-             ARGS_SIZE_RTX (arg->locate.offset), reg_parm_stack_space,
-             ARGS_SIZE_RTX (arg->locate.alignment_pad), false);
+      if (!CONST_INT_P (size_rtx) || INTVAL (size_rtx) != 0)
+   emit_push_insn (arg->value, arg->mode, TREE_TYPE (pval), size_rtx,
+           parm_align, partial, reg, excess, argblock,
+           ARGS_SIZE_RTX (arg->locate.offset),
+           reg_parm_stack_space,
+           ARGS_SIZE_RTX (arg->locate.alignment_pad), false);

       /* Unless this is a partially-in-register argument, the argument is now
     in the stack.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]