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

--- Comment #18 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #17)
> And is it again the operator++ triggering the problem?
> It looks like aliasing bug to me, but in a template hell and
> -Wstrict-aliasing=3 is happy.

It's another place where a *(&cell + 12) is moved by PRE:

   <bb 167> [local count: 365109597]:
   pretmp_2371 = MEM[(const struct Triangulation * *)&cell + 16B];
   pretmp_2373 = MEM[(int *)&cell + 8B];
-  pretmp_2375 = MEM[(int *)&cell + 12B];
   goto <bb 131>; [100.00%]


> 
> The reason why parameter tracking is necessary seems to be the fact that we
> figure out some accesses from inner calls are local to the ++ operator and
> do not consider them in a summary (that is correct)

Reply via email to