This is the mail archive of the
mailing list for the GCC project.
Re: Aliasing brokenness (Was: Re: [patch RFC] SH:Use FRAME_GROWS_DOWNWARD)
On Tue, 2005-07-19 at 16:16 +0100, Joern RENNECKE wrote:
> Daniel Berlin wrote:
> >>The stdarg machinery
> >>(TARGET_BUILD_BUILTIN_VA_LIST: sh_build_builtin_va_list,
> >>EXPAND_BUILTIN_VA_START: sh_va_start,
> >>TARGET_GIMPLIFY_VA_ARG_EXPR: sh_gimplify_va_arg_expr)
> >>fabricates the trees for the valist manipulation independent of the C
> >>frontend, so they might not look like the new alias.c expects them
> >>to look.
> >This machinery will cause failures when you illegally play "hide the
> >ball" from the compiler.
> >In particular, if you have accesses to component_refs that you *know*
> >overlap, but they don't actually have a union somewhere that makes them
> >overlap, or some other actual type structure that contains them
> Look at execute/20000603-1.c . There is a union of struct s1 and struct s2,
> but nonoverlapping_component_refs_p still comes to the wrong conclusions.
This case is questionable, and the current committee proposal seems to
be "this is not allowed".