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



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