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

--- Comment #25 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #24)
> Does
> 
> diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc
> index 0dd47910f97..f780c0ce08c 100644
> --- a/gcc/tree-ssa-loop-ivopts.cc
> +++ b/gcc/tree-ssa-loop-ivopts.cc
> @@ -2241,7 +2241,7 @@ may_be_nonaddressable_p (tree expr)
>      {
>      case VAR_DECL:
>        /* Check if it's a register variable.  */
> -      return DECL_HARD_REGISTER (expr);
> +      return DECL_HARD_REGISTER (expr) || DECL_NONALIASED (expr);
>  
>      case TARGET_MEM_REF:
>        /* TARGET_MEM_REFs are translated directly to valid MEMs on the
> 
> fix it?

Ah, reading more comments, no - it probably doesn't.  Jakub correctly says
that there seems to be a data race necessary to trigger this, so it doesn't
seem to be a GCC issue?

Reply via email to