On Mon, 26 Jun 2006, Andrew Pinski wrote:
>
> On Jun 26, 2006, at 2:07 AM, Richard Guenther wrote:
>
> >So even
> >(len + sizeof (struct tree_string)) & ~__alignof__(struct tree_string)
> >might magically work in every case.
>
> Of course using __alignof__ is wrong in GCC sources since that would mean
> you have to use GCC to bootstrap with which is not documented.
>
> But this does not explain PPC-Darwin's problem as PPC is not a
> STRICT_ALIGNMENT target.
> So either we are allocating too little or someone is going past an array
> bounds somewhere.
I'll currently investigate "fixing" build_string, which interestingly
fails and may hint at a problem elsewhere. Of course alignof is wrong,
but one can use
/* Make sure to request aligned storage and do not waste bytes
provided by padding of struct tree_string. */
length = ((len + sizeof (struct tree_string))
& ~(sizeof (struct tree_string)
- offsetof (struct tree_string, str) - 1));
instead (not pretty, but works).
Richard.
--
Richard Guenther <[EMAIL PROTECTED]>
Novell / SUSE Labs