1 // PR ipa/68672
2 // { dg-do compile }
3 // { dg-options "-O3 --param=partial-inlining-entry-probability=100 -g" }
4 
~SS5 struct 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()14 foo ()
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()42 use1 ()
43 {
44   foo ();
45 }
46 
47 void
use2()48 use2 ()
49 {
50   foo ();
51 }
52 
53 void
use3()54 use3 ()
55 {
56   foo ();
57 }
58