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)


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.



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