https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115237
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Keywords| |diagnostic --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- 'pure' means the function has no side-effect besides reading global memory _when it returns_, so it's valid to turn x = unite (5, 6); y = unite (5, 6); into x = unite (5, 6); y = x; at least that's my understanding. Honza might want to clarify here.