2015-03-24 Paolo Carlini <paolo.carlini@oracle.com>
[official-gcc.git] / gcc / testsuite / g++.dg / ipa / ipa-icf-6.C
blob933ab5dcf08b39c1ad5848f3a000e38020ebd166
1 /* { dg-do run } */
2 /* { dg-options "-O3 -fdump-ipa-icf"  } */
4 struct A {                                                                      
5   A() {ptr=&b;}                                                                 
6   A(const A &a) {ptr = &b;}                                                     
7   void test() { if (ptr != &b) __builtin_abort ();}                             
8   int b;                                                                        
9   int *ptr;                                                                     
10 };                                                                              
12 A test1(A a)
14   a.test();
15   return a;
17 A test2(A a)
19   a.test();
20   return a;
22 __attribute__ ((noinline))
23 static void
24 test_me (A (*t)(A))
26   struct A a, b=t(a);
27   b.test ();
29 int
30 main()
32   test_me (test1);
33   test_me (test2);
34   return 0;
36 /* { dg-final { scan-ipa-dump-times "Unified; Wrapper has been created" 1 "icf"  } } */
37 /* { dg-final { cleanup-ipa-dump "icf" } } */