https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83397
--- Comment #1 from Isabella <izaberina at gmail dot com> --- int a; static void __attribute__((noinline)) f1() { a = 7; } void g1(void) { f1(); } static void __attribute__((noinline)) f2(void) { a = 7; } void g2(void) { f2(); } gets compiled to f1: movl $7, a(%rip) ret f2: movl $7, a(%rip) ret g1: xorl %eax, %eax jmp f1 g2: jmp f2