// { dg-do compile } // { dg-options "-O2 -fno-inline" } import gcc.attributes; extern int t(); int func() { __gshared int var = 42; int nested_1() @no_icf { return var++; } int nested_2() { return var++; } int nested_3() { return var++; } return nested_1() + nested_2() + nested_3(); } @no_icf int var = 0; // { dg-warning ".no_icf. attribute ignored" } // { dg-final { scan-assembler "nested_1" } } // { dg-final { scan-assembler "nested_2" } } // { dg-final { scan-assembler-not "nested_3" } }