@@ -38,13 +38,13 @@ public protocol P {
3838// CHECK: call void @llvm.dbg.declare(metadata {{.*}}** %m.debug, metadata ![[M_COPYABLE_VALUE_TEST:[0-9]*]],
3939//
4040// 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]*]]
4242//
4343// Our undef should be an llvm.dbg.value. Counter-intuitively this works for
4444// both llvm.dbg.addr /and/ llvm.dbg.value. Importantly though its metadata
4545// should be for k since that is the variable that we are telling the debugger
4646// 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]]
4848//
4949// CHECK: ret void
5050// CHECK-NEXT: }
@@ -224,3 +224,12 @@ public func addressOnlyVarTest<T : P>(_ x: T) {
224224 k = x
225225 k. doSomething ( )
226226}
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