https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100817
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- int a; int bar(); void __attribute__((cold)) b () { #define FOO \ for (; a;) \ for (; a >= 0;) #define FOO1 FOO FOO FOO FOO FOO FOO FOO FOO FOO FOO #define FOO2 FOO1 FOO1 FOO1 FOO1 FOO1 FOO1 FOO1 FOO1 FOO1 FOO1 FOO2 FOO2 FOO2 FOO2 FOO2 FOO2 for (; a;) for (; a; a += 2) if (bar()) return; } btw, for a shorter way to write