https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117979
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[12/13/14/15 Regression] |[12/13/14/15 Regression] |ICE on x86_64-linux-gnu: in |ICE on x86_64-linux-gnu: in |verify_loop_structure, at |verify_loop_structure, at |cfgloop.cc:1742 at -Os and |cfgloop.cc:1742 at -Os and |above and returns twice |above and returns twice | |since r12-5301 CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Priority|P3 |P2 --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Slightly cleaned up testcase (the const attribute still seems really weird, only if say one expects to call the function only with 0 argument and foo has no side-effects except that it isn't marked so). int a, b; void foo (void); int __attribute__((returns_twice)) bar (int); int __attribute__((const)) baz (int f) { if (f) { l:; for (f = 0; f < 6; ++f) if (bar (b)) goto l; for (;; a--) ; } foo (); return 0; } And indeed, started to ICE with r12-5301-g045206450386bcd774db3bde0c696828402361c6