Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-7.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O1 -foptimize-sibling-calls -fdump-tree-optimized" } */ extern void abort (void); extern void exit (int); int foo (int n) { return n == 0 ? 1 : n * (n - foo (n - 1)); } int bar (int n) { return n == 0 ? 1 : n * (- bar (n - 1)); } int baz (int n, int m) { return n == 0 ? 100 : (baz (n - 1, m) - m); } int main (void) { if (foo (6) != 726) abort (); if (bar (7) != -5040) abort (); if (baz (10, 5) != 50) abort (); exit (0); } /* { dg-final { scan-tree-dump-times "\\mfoo\\M" 4 "optimized"} } */ /* { dg-final { scan-tree-dump-times "\\mbar\\M" 4 "optimized"} } */ /* { dg-final { scan-tree-dump-times "\\mbaz\\M" 4 "optimized"} } */