expressions: make assign_expression() take an op argument
[smatch.git] / validation / loop-linearization.c
blob25c6dfb870ce3b64723c3412e4d3883853000ef8
1 extern int p(int);
3 static int ffor(void)
5 int i;
6 for (int i = 0; i < 10; i++) {
7 if (!p(i))
8 return 0;
10 return 1;
13 static int fwhile(void)
15 int i = 0;
16 while (i < 10) {
17 if (!p(i))
18 return 0;
19 i++;
21 return 1;
24 static int fdo(void)
26 int i = 0;
27 do {
28 if (!p(i))
29 return 0;
30 } while (i++ < 10);
31 return 1;
35 * check-name: loop-linearization
36 * check-command: test-linearize $file
38 * check-output-start
39 ffor:
40 .L0:
41 <entry-point>
42 phisrc.32 %phi5(i) <- $0
43 br .L4
45 .L4:
46 phi.32 %r1(i) <- %phi5(i), %phi6(i)
47 setlt.32 %r2 <- %r1(i), $10
48 cbr %r2, .L1, .L3
50 .L1:
51 call.32 %r4 <- p, %r1(i)
52 cbr %r4, .L2, .L5
54 .L5:
55 phisrc.32 %phi1(return) <- $0
56 br .L7
58 .L2:
59 add.32 %r7 <- %r1(i), $1
60 phisrc.32 %phi6(i) <- %r7
61 br .L4
63 .L3:
64 phisrc.32 %phi2(return) <- $1
65 br .L7
67 .L7:
68 phi.32 %r5 <- %phi1(return), %phi2(return)
69 ret.32 %r5
72 fwhile:
73 .L8:
74 <entry-point>
75 phisrc.32 %phi11(i) <- $0
76 br .L12
78 .L12:
79 phi.32 %r8(i) <- %phi11(i), %phi12(i)
80 setlt.32 %r9 <- %r8(i), $10
81 cbr %r9, .L9, .L11
83 .L9:
84 call.32 %r11 <- p, %r8(i)
85 cbr %r11, .L14, .L13
87 .L13:
88 phisrc.32 %phi7(return) <- $0
89 br .L15
91 .L14:
92 add.32 %r14 <- %r8(i), $1
93 phisrc.32 %phi12(i) <- %r14
94 br .L12
96 .L11:
97 phisrc.32 %phi8(return) <- $1
98 br .L15
100 .L15:
101 phi.32 %r12 <- %phi7(return), %phi8(return)
102 ret.32 %r12
105 fdo:
106 .L16:
107 <entry-point>
108 phisrc.32 %phi16(i) <- $0
109 br .L17
111 .L17:
112 phi.32 %r15(i) <- %phi16(i), %phi17(i)
113 call.32 %r16 <- p, %r15(i)
114 cbr %r16, .L18, .L20
116 .L20:
117 phisrc.32 %phi13(return) <- $0
118 br .L22
120 .L18:
121 add.32 %r19 <- %r15(i), $1
122 setlt.32 %r20 <- %r15(i), $10
123 phisrc.32 %phi17(i) <- %r19
124 cbr %r20, .L17, .L19
126 .L19:
127 phisrc.32 %phi14(return) <- $1
128 br .L22
130 .L22:
131 phi.32 %r17 <- %phi13(return), %phi14(return)
132 ret.32 %r17
135 * check-output-end