This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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.
- References:
- [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
- 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
- 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
- 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