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: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.

Uros.


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