Skip to content

Commit 32fceb5

Browse files
authored
Merge pull request #41989 from gottesmm/pr-f5f388333b02039b28dbcf3d34cfa678d528bb1f
[move-function] Add dwarfdump filecheck tests that show that if we have a var, we get the debug info that we expect.
2 parents fe6fc81 + ef71174 commit 32fceb5

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

test/DebugInfo/move_function_dbginfo_async.swift

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,57 @@ public func varSimpleTest<T>(_ msg: inout T, _ msg2: T) async {
205205
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async16varSimpleTestVaryyYaFTY4_"(i8* swiftasync %0)
206206
// CHECK: call void @llvm.dbg.value(metadata %T27move_function_dbginfo_async5KlassC** undef, metadata ![[METADATA:[0-9]+]], metadata !DIExpression()), !dbg ![[ADDR_LOC:[0-9]+]]
207207
// CHECK: call void @llvm.dbg.addr(metadata i8* %0, metadata ![[METADATA]], metadata !DIExpression(DW_OP_plus_uconst, 16, DW_OP_plus_uconst, 8)), !dbg ![[ADDR_LOC]]
208+
209+
// We are not an argument, so no problem here.
210+
//
211+
// DWARF: DW_AT_linkage_name ("$s3out16varSimpleTestVaryyYaF")
212+
//
213+
// DWARF: DW_AT_linkage_name ("$s3out16varSimpleTestVaryyYaFTY0_")
214+
// DWARF: DW_TAG_variable
215+
// DWARF-NEXT: DW_AT_location
216+
// DWARF-NEXT: DW_AT_name ("m")
217+
//
218+
// DWARF: DW_TAG_variable
219+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8)
220+
// DWARF-NEXT: DW_AT_name ("k")
221+
//
222+
// DWARF: DW_AT_linkage_name ("$s3out16varSimpleTestVaryyYaFTQ1_")
223+
// DWARF: DW_TAG_variable
224+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x10)
225+
// DWARF-NEXT: DW_AT_name ("m")
226+
//
227+
// DWARF: DW_TAG_variable
228+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8)
229+
// DWARF-NEXT: DW_AT_name ("k")
230+
//
231+
// DWARF: DW_AT_linkage_name ("$s3out16varSimpleTestVaryyYaFTY2_")
232+
// DWARF: DW_TAG_variable
233+
// DWARF-NEXT: DW_AT_location
234+
// DWARF-NEXT: DW_AT_name ("m")
235+
//
236+
// DWARF: DW_TAG_variable
237+
// DWARF-NEXT: DW_AT_location (0x{{[0-9a-f]+}}:
238+
// DWARF-NEXT: [0x{{[0-9a-f]+}}, 0x{{[0-9a-f]+}}): DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8)
239+
// DWARF-NEXT: DW_AT_name ("k")
240+
//
241+
// DWARF: DW_AT_linkage_name ("$s3out16varSimpleTestVaryyYaFTQ3_")
242+
// DWARF: DW_TAG_variable
243+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x10)
244+
// DWARF-NEXT: DW_AT_name ("m")
245+
// K is dead here.
246+
// DWARF: DW_TAG_variable
247+
// DWARF-NEXT: DW_AT_name ("k")
248+
//
249+
// We reinitialize k in 4.
250+
// DWARF: DW_AT_linkage_name ("$s3out16varSimpleTestVaryyYaFTY4_")
251+
// DWARF: DW_TAG_variable
252+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x10)
253+
// DWARF-NEXT: DW_AT_name ("m")
254+
//
255+
// DWARF: DW_TAG_variable
256+
// DWARF-NEXT: DW_AT_location (0x{{[0-9a-f]+}}:
257+
// DWARF-NEXT: [0x{{[0-9a-f]+}}, 0x{{[0-9a-f]+}}): DW_OP_entry_value(DW_OP_reg14 R14), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8)
258+
// DWARF-NEXT: DW_AT_name ("k")
208259
public func varSimpleTestVar() async {
209260
var k = Klass()
210261
k.doSomething()

0 commit comments

Comments
 (0)