http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56344
Marek Polacek <mpolacek at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mpolacek at gcc dot gnu.org
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> 2013-02-22
14:28:02 UTC ---
Richi, for the middle-end part, do you mean something like this? I've used
error () instead of sorry (), but of course I can change that back.
--- gcc/calls.c.mp 2013-02-22 15:24:58.655086818 +0100
+++ gcc/calls.c 2013-02-22 15:25:09.737117963 +0100
@@ -3037,6 +3037,12 @@ expand_call (tree exp, rtx target, int i
{
rtx before_arg = get_last_insn ();
+ if (adjusted_args_size.constant >= (1 << 31))
+ {
+ error ("passing too large argument on stack");
+ break;
+ }
+
if (store_one_arg (&args[i], argblock, flags,
adjusted_args_size.var != 0,
reg_parm_stack_space)