Commit | Line | Data |
---|---|---|
c906108c SS |
1 | /* Tests for single stepping through various branch conditions */ |
2 | ||
3 | int noscramble(int a) | |
4 | { | |
5 | return a ; | |
6 | } | |
7 | ||
8 | int echo(int a) | |
9 | { return noscramble(a) ; } | |
10 | ||
11 | int equaltest(int a,int b) | |
12 | { int retval ; | |
13 | if (a == b) | |
14 | retval = noscramble(1) ; | |
15 | else retval = noscramble(0) ; | |
16 | return retval ; | |
17 | } | |
18 | ||
19 | int neqtest(int a , int b) | |
20 | { int retval ; | |
21 | if (a != b) | |
22 | retval = echo(1) ; | |
23 | else retval = echo(2) ; | |
24 | return retval ; | |
25 | } | |
26 | int zerotest(int a ) | |
27 | { int retval ; | |
28 | a = echo(a) ; | |
29 | if (a ==0) | |
30 | retval = echo(1) ; | |
31 | else | |
32 | retval = echo(0) ; | |
33 | retval = echo(retval) ; | |
34 | return retval ; | |
35 | } | |
36 | ||
37 | int zerotest2(int a) | |
38 | { | |
39 | return (a==0) ; | |
40 | } | |
41 | ||
42 | int nonzerotest(int a) | |
43 | { | |
44 | int retval ; | |
45 | if (a != 0) | |
46 | retval = echo(0) ; | |
47 | else retval = echo(1) ; | |
48 | return retval ; | |
49 | } | |
50 | ||
51 | int whiletest(int a) | |
52 | { | |
53 | while (a > 0) | |
54 | { | |
55 | a-- ; | |
56 | } | |
57 | return 0 ; | |
58 | } | |
59 | int whiletest2(int a) | |
60 | { | |
61 | while (a > 0) | |
62 | { | |
63 | a = noscramble(a) ; | |
64 | a-- ; | |
65 | } | |
66 | return a ; | |
67 | } | |
68 | ||
69 | int decr(int x) { return x - 1 ; } | |
70 | ||
71 | int while3(int a) | |
72 | { | |
73 | int b = a ; | |
74 | while (a == b) | |
75 | { | |
76 | a = echo(a) ; | |
77 | b = decr(b) ; | |
78 | } | |
79 | return a ; | |
80 | } | |
81 | ||
82 | void done (int x) { } | |
83 | ||
84 | int main() | |
85 | { | |
86 | int a,b,c,d ; | |
87 | done(1) ; | |
88 | a = echo(123456) ; | |
89 | b = echo(123456) ; | |
90 | c = echo(56789) ; | |
91 | d = echo(0) ; | |
92 | #if 1 | |
93 | equaltest(a,b) ; | |
94 | done(7) ; | |
95 | equaltest(a,c) ; | |
96 | done(8) ; | |
97 | whiletest(3) ; /* worked */ | |
98 | done(3) ; | |
99 | while3(3) ; | |
100 | done(6) ; | |
101 | #endif | |
102 | neqtest(a,b) ; | |
103 | neqtest(a,b) ; | |
104 | neqtest(a,c) ; | |
105 | zerotest(d) ; | |
106 | zerotest(a) ; | |
107 | done(5) ; | |
108 | nonzerotest(d) ; | |
109 | done(4) ; | |
110 | nonzerotest(a) ; | |
111 | done(111) ; | |
112 | return 1 ; | |
113 | } |