xref: /openbsd-src/gnu/llvm/clang/utils/TestUtils/deep-stack.py (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
1*e5dd7070Spatrick#!/usr/bin/env python
2*e5dd7070Spatrick
3*e5dd7070Spatrickfrom __future__ import absolute_import, division, print_function
4*e5dd7070Spatrickdef pcall(f, N):
5*e5dd7070Spatrick    if N == 0:
6*e5dd7070Spatrick        print('    f(0)', file=f)
7*e5dd7070Spatrick        return
8*e5dd7070Spatrick
9*e5dd7070Spatrick    print('    f(', file=f)
10*e5dd7070Spatrick    pcall(f, N - 1)
11*e5dd7070Spatrick    print('     )', file=f)
12*e5dd7070Spatrick
13*e5dd7070Spatrickdef main():
14*e5dd7070Spatrick    f = open('t.c','w')
15*e5dd7070Spatrick    print('int f(int n) { return n; }', file=f)
16*e5dd7070Spatrick    print('int t() {', file=f)
17*e5dd7070Spatrick    print('  return', file=f)
18*e5dd7070Spatrick    pcall(f, 10000)
19*e5dd7070Spatrick    print('  ;', file=f)
20*e5dd7070Spatrick    print('}', file=f)
21*e5dd7070Spatrick
22*e5dd7070Spatrickif __name__ == "__main__":
23*e5dd7070Spatrick    import sys
24*e5dd7070Spatrick    sys.setrecursionlimit(100000)
25*e5dd7070Spatrick    main()
26