1 /* { dg-do compile { target { nonpic || pie_enabled } } } */
2 /* { dg-options "-O3 -fno-ipa-vrp -fdump-tree-local-pure-const1 -fdump-ipa-pure-const -fdump-tree-optimized -fno-early-inlining -fgnu89-inline" } */
6 __attribute__ ((noinline
, noclone
))
15 __attribute__ ((noinline
, noclone
))
22 __attribute__ ((noinline
, noclone
))
30 call_callback(int (*fn
)(int), int a
)
35 __attribute__ ((noinline
, noclone
)) int
38 return call_callback (call_me
, a
);
41 __attribute__ ((noinline
)) int
48 __attribute__ ((noinline
, noclone
)) int
70 /* { dg-final { scan-tree-dump-times "i_am_pure1 .5" 1 "optimized"} } */
71 /* { dg-final { scan-tree-dump-times "i_am_const2 .5" 1 "optimized"} } */
72 /* { dg-final { scan-tree-dump-times "i_am_const3 .5" 1 "optimized"} } */
73 /* { dg-final { scan-tree-dump-times "i_am_pure4 .5" 1 "optimized"} } */
74 /* { dg-final { scan-tree-dump "found to be looping pure: i_am_pure1" "local-pure-const1"} } */
75 /* { dg-final { scan-tree-dump "found to be looping pure: i_am_pure4" "local-pure-const1"} } */
76 /* { dg-final { scan-ipa-dump "found to be const: i_am_const2" "pure-const"} } */
77 /* { dg-final { scan-ipa-dump "found to be const: i_am_const3" "pure-const"} } */