1 // PR ipa/68672 2 // { dg-do compile } 3 // { dg-options "-O3 --param=partial-inlining-entry-probability=100 -g" } 4 ~SS5struct S { ~S () {} }; 6 S *a, *e; 7 int *b; 8 void bar (); 9 void baz (); 10 void fn (int *); 11 void fn2 (S *); 12 13 static int foo()14foo () 15 { 16 S *c = a; 17 if (c) 18 { 19 bar (); 20 if (a) 21 __builtin_abort (); 22 baz (); 23 } 24 int p = *b; 25 S *f = e; 26 if (p) 27 { 28 fn2 (f); 29 fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); 30 fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); 31 fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); 32 fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); fn (b); 33 } 34 f->~S (); 35 int q = 2 * p; 36 int r = 3 * q; 37 S *d = c; 38 return p; 39 } 40 41 void use1()42use1 () 43 { 44 foo (); 45 } 46 47 void use2()48use2 () 49 { 50 foo (); 51 } 52 53 void use3()54use3 () 55 { 56 foo (); 57 } 58