1 //===-- main.c --------------------------------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 #include <stdio.h>
10
11 // This simple program is to test the lldb Python API related to frames.
12
13 int a(int, char);
14 int b(int, char);
15 int c(int, char);
16
a(int val,char ch)17 int a(int val, char ch)
18 {
19 int my_val = val;
20 char my_ch = ch;
21 printf("a(val=%d, ch='%c')\n", val, ch);
22 if (val <= 1)
23 return b(val+1, ch+1);
24 else if (val >= 3)
25 return c(val+1, ch+1);
26
27 return val;
28 }
29
b(int val,char ch)30 int b(int val, char ch)
31 {
32 int my_val = val;
33 char my_ch = ch;
34 printf("b(val=%d, ch='%c')\n", val, ch);
35 return c(val+1, ch+1);
36 }
37
c(int val,char ch)38 int c(int val, char ch)
39 {
40 int my_val = val;
41 char my_ch = ch;
42 printf("c(val=%d, ch='%c')\n", val, ch);
43 return val + 3 + ch;
44 }
45
main(int argc,char const * argv[])46 int main (int argc, char const *argv[])
47 {
48 int A1 = a(1, 'A'); // a(1, 'A') -> b(2, 'B') -> c(3, 'C')
49 printf("a(1, 'A') returns %d\n", A1);
50
51 int B2 = b(2, 'B'); // b(2, 'B') -> c(3, 'C')
52 printf("b(2, 'B') returns %d\n", B2);
53
54 int A3 = a(3, 'A'); // a(3, 'A') -> c(4, 'B')
55 printf("a(3, 'A') returns %d\n", A3);
56
57 return 0;
58 }
59