https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105091

--- Comment #14 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #13)
...
> Does the following fix the runtime error?  The RTL after DSE seems to be OK.
> 
> diff --git a/gcc/gimple-expr.cc b/gcc/gimple-expr.cc
> index f9a650b5daf..5faaf43eaf5 100644
> --- a/gcc/gimple-expr.cc
> +++ b/gcc/gimple-expr.cc
> @@ -910,7 +910,8 @@ mark_addressable (tree x)
>      x = TREE_OPERAND (x, 0);
>    while (handled_component_p (x))
>      x = TREE_OPERAND (x, 0);
> -  if (TREE_CODE (x) == MEM_REF
> +  if ((TREE_CODE (x) == MEM_REF
> +       || TREE_CODE (x) == TARGET_MEM_REF)
>        && TREE_CODE (TREE_OPERAND (x, 0)) == ADDR_EXPR)
>      x = TREE_OPERAND (TREE_OPERAND (x, 0), 0);
>    if (!VAR_P (x)

Hi Richard!
Thanks a lot, so great!  This fix works, also pass bootstrap&regtest for
ppc64/ppc64le and x86_64.

Reply via email to