[Bug middle-end/56344] ICE for program with very large structs returned by value

mpolacek at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 22 14:28:00 GMT 2013


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)



More information about the Gcc-bugs mailing list