https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103979
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- struct S { char a[64]; }; int foo (void) { struct S s, t; asm goto ("" : "=g" (s) : : : l); t = s; asm goto ("" : "=g" (s) : : : l); return s.a[0] + t.a[63]; l: return -1; } also ICEs at -O2, not during fwprop (note, I can't reproduce the #c0 testcase, neither with trunk nor 11 branch on x86_64-linux), but during sra. I think we shouldn't just follow blindly the docs, but see what e.g. Linux kernel as heavy user of asm goto with outputs (and I think mostly without volatile) wants.