This is the mail archive of the gcc-patches@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]

Re: [RFC/RFT PATCH, middle end]: Fix PR 34621, [4.3 Regression] gcc.c-torture/execute/va-arg-25.c:32: internal compiler error: in expand_call, at calls.c:2785


On Fri, Feb 15, 2008 at 10:44 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Fri, Feb 15, 2008 at 10:35 AM, Richard Guenther
>  <richard.guenther@gmail.com> wrote:
>  > On Fri, Feb 15, 2008 at 10:31 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>  >  > On Fri, Feb 15, 2008 at 9:08 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>  >  >
>  >  >  >  >  Patch was bootstrapped and regression tested on i686-pc-linux-gnu and
>  >  >  >  >  x86_64-pc-linux-gnu. Also, I have compiled and successfully executed
>  >  >  >  >  va-arg-25.c with STACK_BOUNDARY set to 128. For added fun, it also works
>  >  >  >  >  when integer va-arguments are changed to double, so I'm pretty confident
>  >  >  >  >  in this patch.
>  >  >  >  >
>  >  >  >  >  While I believe that the patch is correct, I don't have
>  >  >  >  >  i686-apple-darwin target (or PPC that could also be affected) here to
>  >  >  >  >  fully test this change. Volunteers are welcome...
>  >  >  >
>  >  >  >  To quote Comment #34:
>  >  >
>  >  >
>  >  > >  With the patch in http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00507.html, the
>  >  >  >  PR is fixed without regression on intel(32/64 bit) and ppc(32 bit) darwin9.
>  >  >  >  I'll post the test results ASAP.
>  >  >  >
>  >  >  >  ---endquote---
>  >  >  >
>  >  >  >  OTOH, the test for STACK_BOUNDARY can simply be removed, because
>  >  >  >  PARM_BOUNDARY is always equal or smaller than STACK_BOUNDARY. I have checked
>  >  >  >  all targets, and this is true everywhere. So the updated patch:
>
>  Documentation says that:
>
>   -- Macro: STACK_BOUNDARY
>      Define this macro to the minimum alignment enforced by hardware
>      for the stack pointer on this machine.  The definition is a C
>      expression for the desired alignment (measured in bits).  This
>      value is used as a default if `PREFERRED_STACK_BOUNDARY' is not
>      defined.  On most machines, this should be the same as
>      `PARM_BOUNDARY'.
>
>
>  >  Is this documented?  If so ok, otherwise please add an assert at the
>  >  top of the function.
>
>  OTOH, I think that argument should be aligned according to
>  PARM_BOUNDARY, and STACK_BOUNDARY IMO just doesn't fit here. So, I
>  think that assert would be a bit misleading.

I see.  The patch is ok as-is.

Thanks,
Richard.


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