@@ -29,9 +29,76 @@ void a(int A) {
29
29
}
30
30
}
31
31
32
+ void b (int A ) {
33
+ // CHECK: entry:
34
+ // CHECK: store i32 0, ptr %i{{.*}}, !dbg [[bG1R1:!.*]]
35
+ // CHECK: for.cond:
36
+ // CHECK: %cmp = icmp slt i32 %0, %1, !dbg [[bG2R1:!.*]]
37
+ // CHECK: br i1 %cmp, label %for.body, label %for.end, !dbg [[bG3R1:!.*]]
38
+
39
+ // CHECK: for.body:
40
+ // CHECK-NEXT: %2 = load i32, ptr %A.addr
41
+ // - If stmt atom:
42
+ // CHECK-NEXT: %cmp1 = icmp sgt i32 %2, 1, !dbg [[bG4R2:!.*]]
43
+ // CHECK-NEXT: br i1 %cmp1, label %if.then, label %if.end, !dbg [[bG4R1:!.*]]
44
+ // CHECK: if.then:
45
+ // CHECK-NEXT: br label %if.end
46
+
47
+ // - For closing brace.
48
+ // CHECK: if.end:
49
+ // CHECK-NEXT: br label %for.inc, !dbg [[bG6R1:!.*]]
50
+
51
+ // CHECK: for.inc:
52
+ // CHECK: %inc = add{{.*}}, !dbg [[bG5R2:!.*]]
53
+ // CHECK: store i32 %inc, ptr %i{{.*}}, !dbg [[bG5R1:!.*]]
54
+ for (int i = 0 ; i < A ; ++ i ) {
55
+ if (A > 1 )
56
+ ;
57
+ }
58
+ }
59
+
60
+ void c (int A ) {
61
+ // CHECK: entry:
62
+ // CHECK: for.cond:
63
+ // CHECK-NEXT: %0 = load i32, ptr %A.addr
64
+ // - If stmt atom:
65
+ // CHECK-NEXT: %cmp = icmp sgt i32 %0, 1, !dbg [[cG1R2:!.*]]
66
+ // CHECK-NEXT: br i1 %cmp, label %if.then, label %if.end, !dbg [[cG1R1:!.*]]
67
+ // CHECK: if.then:
68
+ // CHECK-NEXT: br label %if.end
69
+
70
+ // - For closing brace.
71
+ // CHECK: if.end:
72
+ // CHECK-NEXT: br label %for.inc, !dbg [[cG3R1:!.*]]
73
+
74
+ // CHECK: for.inc:
75
+ // CHECK-NEXT: %1 = load i32, ptr %A.addr
76
+ // CHECK-NEXT: %inc = add{{.*}}, !dbg [[cG2R2:!.*]]
77
+ // CHECK-NEXT: store i32 %inc, ptr %A.addr{{.*}}, !dbg [[cG2R1:!.*]]
78
+ for (; /*no cond*/ ; ++ A ) {
79
+ if (A > 1 )
80
+ ;
81
+ }
82
+ }
83
+
32
84
// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
33
85
// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)
34
86
// CHECK: [[G3R1]] = !DILocation({{.*}}, atomGroup: 3, atomRank: 1)
35
87
// CHECK: [[G5R1]] = !DILocation(line: 29,{{.*}} atomGroup: 5, atomRank: 1)
36
88
// CHECK: [[G4R2]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 2)
37
89
// CHECK: [[G4R1]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 1)
90
+
91
+ // CHECK: [[bG1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
92
+ // CHECK: [[bG2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)
93
+ // CHECK: [[bG3R1]] = !DILocation({{.*}}, atomGroup: 3, atomRank: 1)
94
+ // CHECK: [[bG4R2]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 2)
95
+ // CHECK: [[bG4R1]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 1)
96
+ // CHECK: [[bG6R1]] = !DILocation(line: 57,{{.*}} atomGroup: 6, atomRank: 1)
97
+ // CHECK: [[bG5R2]] = !DILocation({{.*}}, atomGroup: 5, atomRank: 2)
98
+ // CHECK: [[bG5R1]] = !DILocation({{.*}}, atomGroup: 5, atomRank: 1)
99
+
100
+ // CHECK: [[cG1R2]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 2)
101
+ // CHECK: [[cG1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
102
+ // CHECK: [[cG3R1]] = !DILocation(line: 81,{{.*}} atomGroup: 3, atomRank: 1)
103
+ // CHECK: [[cG2R2]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 2)
104
+ // CHECK: [[cG2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)
0 commit comments