__attribute__((always_inline)) int inline_1(int x) { int y = x + 1; int z = y + 3 * x; return z; } __attribute__((always_inline)) int inline_2(int x) { return inline_1(x); } __attribute__((always_inline)) int inline_3(int x) { return inline_2(x); } __attribute__((always_inline)) int inline_4(int x) { return inline_3(x); } __attribute__((noinline)) int foo(int x) { int y = x + 1; int z = inline_4(y * 2); y = x * 5; z *= 3; z += inline_2(y * inline_4(y + 3)); return y + z; } int main(int argc, char ** argv) { return foo(argc); }