@@ -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]*]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]*]]
41
+ // CHECK: call void @llvm.dbg.addr(metadata {{.*}}** %k.debug, metadata ![[K_COPYABLE_VALUE_METADATA :[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 ]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
47
+ // CHECK: call void @llvm.dbg.value(metadata %T21move_function_dbginfo5KlassC* undef, metadata ![[K_COPYABLE_VALUE_METADATA ]], metadata !DIExpression()), !dbg ![[ADDR_LOC]]
48
48
//
49
49
// CHECK: ret void
50
50
// CHECK-NEXT: }
@@ -224,3 +224,12 @@ public func addressOnlyVarTest<T : P>(_ x: T) {
224
224
k = x
225
225
k. doSomething ( )
226
226
}
227
+
228
+ //////////////////////////
229
+ // Late Metadata Checks //
230
+ //////////////////////////
231
+
232
+ // CHECK-DAG: ![[K_COPYABLE_VALUE_METADATA]] = !DILocalVariable(name: "k",
233
+ // CHECK-DAG: ![[K_COPYABLE_VAR_METADATA]] = !DILocalVariable(name: "k",
234
+ // CHECK-DAG: ![[K_ADDR_LET_METADATA]] = !DILocalVariable(name: "k",
235
+ // CHECK-DAG: ![[K_ADDRONLY_VAR_METADATA]] = !DILocalVariable(name: "k",
0 commit comments