@@ -38,13 +38,13 @@ public protocol P {
38
38
// CHECK: call void @llvm.dbg.declare(metadata {{.*}}** %m.debug, metadata ![[M_COPYABLE_VALUE_TEST:[0-9]*]],
39
39
//
40
40
// We should have a llvm.dbg.addr for k since we moved it.
41
- // CHECK: call void @llvm.dbg.addr(metadata {{.*}}** %k.debug, metadata ![[K_COPYABLE_VALUE_TEST:[0-9]*]],
41
+ // CHECK: call void @llvm.dbg.addr(metadata {{.*}}** %k.debug, metadata ![[K_COPYABLE_VALUE_TEST:[0-9]*]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
42
42
//
43
43
// Our undef should be an llvm.dbg.value. Counter-intuitively this works for
44
44
// both llvm.dbg.addr /and/ llvm.dbg.value. Importantly though its metadata
45
45
// should be for k since that is the variable that we are telling the debugger
46
46
// is no longer defined.
47
- // CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_VALUE_TEST]],
47
+ // CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_VALUE_TEST]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
48
48
//
49
49
// CHECK: ret void
50
50
// CHECK-NEXT: }
@@ -81,8 +81,10 @@ public func copyableValueTest() {
81
81
82
82
// CHECK-LABEL: define swiftcc void @"$s21move_function_dbginfo15copyableVarTestyyF"()
83
83
// CHECK: call void @llvm.dbg.declare(metadata %T21move_function_dbginfo5KlassC** %m.debug,
84
- // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k, metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]],
85
- // CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_METADATA]],
84
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k, metadata ![[K_COPYABLE_VAR_METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
85
+ // CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC** undef, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
86
+ // TODO: Should this be a deref like the original?
87
+ // CHECK: call void @llvm.dbg.addr(metadata %T21move_function_dbginfo5KlassC** %k, metadata ![[K_COPYABLE_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
86
88
// CHECK: ret void
87
89
// CHECK-NEXT: }
88
90
//
@@ -123,8 +125,8 @@ public func copyableVarTest() {
123
125
// CHECK: @llvm.dbg.declare(metadata %swift.type** %T1,
124
126
// CHECK: @llvm.dbg.declare(metadata %swift.opaque** %x.debug,
125
127
// CHECK: @llvm.dbg.declare(metadata i8** %m.debug,
126
- // CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]],
127
- // CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDR_LET_METADATA]],
128
+ // CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDR_LET_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
129
+ // CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDR_LET_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
128
130
// CHECK: ret void
129
131
// CHECK-NEXT: }
130
132
//
@@ -173,8 +175,9 @@ public func addressOnlyValueTest<T : P>(_ x: T) {
173
175
// CHECK: @llvm.dbg.declare(metadata %swift.type** %T1,
174
176
// CHECK: @llvm.dbg.declare(metadata %swift.opaque** %x.debug,
175
177
// CHECK: @llvm.dbg.declare(metadata i8** %m.debug,
176
- // CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]],
177
- // CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDRONLY_VAR_METADATA]],
178
+ // CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA:[0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg ![[ADDR_LOC:[0-9]*]]
179
+ // CHECK: @llvm.dbg.value(metadata %swift.opaque* undef, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
180
+ // CHECK: @llvm.dbg.addr(metadata i8** %k.debug, metadata ![[K_ADDRONLY_VAR_METADATA]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
178
181
// CHECK: ret void
179
182
// CHECK-NEXT: }
180
183
//
0 commit comments