1
1
2
- // RUN: %clang -gkey-instructions - x c++ %s -gmlt -gno-column-info -S -emit-llvm -o - -ftrivial-auto-var-init=pattern \
2
+ // RUN: %clang_cc1 - x c++ -gkey-instructions %s -debug-info-kind=line-tables-only -gno-column-info -emit-llvm -o - -ftrivial-auto-var-init=pattern \
3
3
// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank
4
4
5
- // RUN: %clang -gkey-instructions - x c %s -gmlt -gno-column-info -S -emit-llvm -o - -ftrivial-auto-var-init=pattern \
5
+ // RUN: %clang_cc1 - x c -gkey-instructions %s -debug-info-kind=line-tables-only -gno-column-info -emit-llvm -o - -ftrivial-auto-var-init=pattern \
6
6
// RUN: | FileCheck %s --implicit-check-not atomGroup --implicit-check-not atomRank
7
7
8
8
// The implicit-check-not is important; we don't want the GEPs created for the
@@ -13,17 +13,24 @@ void a() {
13
13
// CHECK: call void @llvm.memcpy{{.*}}%A{{.*}}, !dbg [[G1R1:!.*]]
14
14
int A [] = { 1 , 2 , 3 };
15
15
16
- // CHECK: store i32 1, ptr %{{.*}}, !dbg [[G2R1:!.*]]
17
- // CHECK: store i32 2, ptr %{{.*}}, !dbg [[G2R1]]
18
- // CHECK: %0 = load i32, ptr @g{{.*}}, !dbg [[G2R2:!.*]]
19
- // CHECK: store i32 %0, ptr %{{.*}}, !dbg [[G2R1]]
16
+ // CHECK: call void @llvm.memcpy{{.*}}%B{{.*}}, !dbg [[G2R1:!.*]]
17
+ // CHECK-NEXT: store i32 1, ptr %B{{.*}}, !dbg [[G2R1:!.*]]
18
+ // CHECK-NEXT: %arrayinit.element = getelementptr {{.*}}, ptr %B, {{.*}} 1, !dbg [[B_LINE:!.*]]
19
+ // CHECK-NEXT: store i32 2, ptr %arrayinit.element{{.*}}, !dbg [[G2R1]]
20
+ // CHECK-NEXT: %arrayinit.element1 = getelementptr {{.*}}, ptr %B, {{.*}} 2, !dbg [[B_LINE]]
21
+ // CHECK-NEXT: %0 = load i32, ptr @g{{.*}}, !dbg [[G2R2:!.*]]
22
+ // CHECK-NEXT: store i32 %0, ptr %arrayinit.element1{{.*}}, !dbg [[G2R1]]
20
23
int B [] = { 1 , 2 , g };
21
24
22
- // CHECK: call void @llvm.memset{{.*}}%big{{.*}}, !dbg [[G3R1:!.*]]
23
- // CHECK: store i8 97{{.*}}, !dbg [[G3R1]]
24
- // CHECK: store i8 98{{.*}}, !dbg [[G3R1]]
25
- // CHECK: store i8 99{{.*}}, !dbg [[G3R1]]
26
- // CHECK: store i8 100{{.*}}, !dbg [[G3R1]]
25
+ // CHECK: call void @llvm.memset{{.*}}%big{{.*}} !dbg [[G3R1:!.*]]
26
+ // CHECK-NEXT: %1 = getelementptr {{.*}}, ptr %big, {{.*}} 0, {{.*}} 0, !dbg [[big_LINE:!.*]]
27
+ // CHECK-NEXT: store i8 97, ptr %1{{.*}}, !dbg [[G3R1]]
28
+ // CHECK-NEXT: %2 = getelementptr {{.*}}, ptr %big, {{.*}} 0, {{.*}} 1, !dbg [[big_LINE]]
29
+ // CHECK-NEXT: store i8 98, ptr %2{{.*}}, !dbg [[G3R1]]
30
+ // CHECK-NEXT: %3 = getelementptr {{.*}}, ptr %big, {{.*}} 0, {{.*}} 2, !dbg [[big_LINE]]
31
+ // CHECK-NEXT: store i8 99, ptr %3{{.*}}, !dbg [[G3R1]]
32
+ // CHECK-NEXT: %4 = getelementptr {{.*}}, ptr %big, {{.*}} 0, {{.*}} 3, !dbg [[big_LINE]]
33
+ // CHECK: store i8 100, ptr %4{{.*}} !dbg [[G3R1]]
27
34
char big [65536 ] = { 'a' , 'b' , 'c' , 'd' };
28
35
29
36
// CHECK: call void @llvm.memset{{.*}}%arr{{.*}}, !dbg [[G4R1:!.*]]
@@ -35,7 +42,9 @@ void a() {
35
42
36
43
// CHECK: [[G1R1]] = !DILocation({{.*}}, atomGroup: 1, atomRank: 1)
37
44
// CHECK: [[G2R1]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 1)
45
+ // CHECK: [[B_LINE]] = !DILocation(line: 23, scope: ![[#]])
38
46
// CHECK: [[G2R2]] = !DILocation({{.*}}, atomGroup: 2, atomRank: 2)
39
47
// CHECK: [[G3R1]] = !DILocation({{.*}}, atomGroup: 3, atomRank: 1)
48
+ // CHECK: [[big_LINE]] = !DILocation(line: 34, scope: ![[#]])
40
49
// CHECK: [[G4R1]] = !DILocation({{.*}}, atomGroup: 4, atomRank: 1)
41
50
// CHECK: [[G5R1]] = !DILocation({{.*}}, atomGroup: 5, atomRank: 1)
0 commit comments