1 /* Verify that simple indirect calls are inlined even without early
4 /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining" } */
6 extern void abort (void);
11 void (*f
)(struct S
*);
18 void (*f
)(struct Z
*, int);
26 static __attribute__ ((noinline
, noclone
)) struct S
*
29 return (struct S
*) &gc
;
32 static void wrong_target (struct S
*s
)
37 static void good_target (struct S
*s
)
42 static void g1 (struct S
*s
)
47 static void f2 (struct Z
*z
)
53 static inline __attribute__ ((flatten
)) void f1 (struct S
*s
)
58 int main (int argc
, char **argv
)
60 struct S
*s
= get_s();
71 /* { dg-final { scan-ipa-dump-not "wrong_target\[^\\n\]*inline copy in" "inline" } } */
72 /* { dg-final { cleanup-ipa-dump "inline" } } */