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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> p *ref
> $9 = {ref = <component_ref 0x7ffff48513c0>, base = <var_decl
> 0x7ffff4fe5ab0>, 
>   offset = {coeffs = {320}}, size = {coeffs = {8}}, max_size = {coeffs =
> {8}}, 
>   ref_alias_set = 21, base_alias_set = 0, volatile_p = false}
> 
> so the load has alias-set zero and thus conflicts with SR.93_7->i.  It has
> alias-set zero because _Optional_payload_base has TYPE_TYPELESS_STORAGE.

Though a store of a zero that does change a value of a zero.

> 
> Points-to info doesn't help since it seems D_45921 escaped somehow.

escapes due to :
```
  MEM[(struct basic_string *)&D.45863 + 8B]._M_dataplus._M_p = &MEM[(const
struct basic_string *)&D.45863 + 8B].D.35055._M_local_buf;
```

But that is afterwards and in the `_18 != 0` branch.

Maybe this is another one of the escape analysis should be flow sensitive.

Reply via email to