Skip to content

Commit 80f598c

Browse files
committed
[move-function] Validate that we create di local variables in the llvm-ir FileCheck tests.
1 parent 98bb539 commit 80f598c

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

test/DebugInfo/move_function_dbginfo.swift

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)