2 /* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-optimized" } */
4 extern void abort (void);
5 extern void exit (int);
9 return n
== 0 ? 1 : n
* (n
- foo (n
- 1));
14 return n
== 0 ? 1 : n
* (- bar (n
- 1));
17 int baz (int n
, int m
)
19 return n
== 0 ? 100 : (baz (n
- 1, m
) - m
);
30 if (baz (10, 5) != 50)
36 /* { dg-final { scan-tree-dump-times "\\mfoo\\M" 4 "optimized"} } */
37 /* { dg-final { scan-tree-dump-times "\\mbar\\M" 4 "optimized"} } */
38 /* { dg-final { scan-tree-dump-times "\\mbaz\\M" 4 "optimized"} } */