1 /* { dg-do compile } */ 2 /* { dg-require-alias "" } */ 3 /* { dg-options "-O2 -fdump-tree-optimized -std=gnu89" } */ 4 void abort (void); 5 __attribute__ ((weak)) test()6int test() 7 { 8 return 0; 9 } 10 static int test2() __attribute__ ((alias("test"))); 11 static int test1() __attribute__ ((weakref)) __attribute__ ((alias("test2"))); 12 static int test4() __attribute__ ((weakref)) __attribute__ ((alias("test"))); main()13main() 14 { 15 test(); 16 test2(); 17 test3(); 18 test4(); 19 } 20 21 /* calls to test1 and test2 can be inlined and optmized away. Calls 22 to test and test4 are overwritable. */ 23 24 /* { dg-final { scan-tree-dump-times " test " 1 "optimized" } } */ 25 /* { dg-final { scan-tree-dump-times " test4 " 1 "optimized" } } */ 26 /* { dg-final { scan-tree-dump-not " test1 " "optimized" } } */ 27 /* { dg-final { scan-tree-dump-not " test2 " "optimized" } } */ 28