1 // { dg-do compile }
2 // { dg-options "-O2 -fno-inline" }
3 
4 import gcc.attributes;
5 
6 extern int t();
7 
func()8 int func()
9 {
10     __gshared int var = 42;
11     int nested_1() @no_icf
12     {
13         return var++;
14     }
15     int nested_2()
16     {
17         return var++;
18     }
19     int nested_3()
20     {
21         return var++;
22     }
23     return nested_1() + nested_2() + nested_3();
24 }
25 
26 @no_icf int var = 0; // { dg-warning ".no_icf. attribute ignored" }
27 
28 // { dg-final { scan-assembler "nested_1" } }
29 // { dg-final { scan-assembler "nested_2" } }
30 // { dg-final { scan-assembler-not "nested_3" } }
31