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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-04-28
     Ever confirmed|0                           |1

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
It's the ternary operator that causes the issue. 
The following patch works fine:

diff --git a/gcc/function.c b/gcc/function.c
index d1a2c0a..0930bb0 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4195,9 +4195,9 @@ pad_to_arg_alignment (struct args_size *offset_ptr, int
boundary,
       else
        {
          offset_ptr->constant = -sp_offset +
-           ARGS_GROW_DOWNWARD ?
+           (ARGS_GROW_DOWNWARD ?
            FLOOR_ROUND (offset_ptr->constant + sp_offset, boundary_in_bytes) :
-           CEIL_ROUND (offset_ptr->constant + sp_offset, boundary_in_bytes);
+           CEIL_ROUND (offset_ptr->constant + sp_offset, boundary_in_bytes));

            if (boundary > PARM_BOUNDARY)
              alignment_pad->constant = offset_ptr->constant - save_constant;

Reply via email to