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

--- Comment #13 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, I can reproduce it even though the propagation happens in different
function in dom rather than pre.
The callee is again the operator++ so I start to suspect aliasing violation
there.

I get:
ipa-modref: in build_patches.constprop/375859, call to operator++/33005 does
not clobber MEM <struct DoFHandler * const> [(struct DoFCellAccessor
*)&active_cell] 6->6

parameter of call is &active_cell so we disambiguate param0 with 

while the summary for ipa-modref

  stores:                                                                       
    Limits: 32 bases, 16 refs                                                   
      Base 0: alias set 11                                                      
        Ref 0: alias set 13                                                     
          access: Parm 0 param offset:64 offset:32 size:32 max_size:32          
          access: Parm 0 param offset:64 offset:0 size:32 max_size:32           

So this really seems that the alias set 6 is not conflicting with  alias sets
11 or 13.

Honza

Reply via email to