Skip to content

Commit 006b4d7

Browse files
committed
[dbg-info][move-function] Add DWARF filecheck lines for conditional control flow tests.
1 parent 8c6c772 commit 006b4d7

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

test/DebugInfo/move_function_dbginfo_async.swift

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,45 @@ public func varSimpleTestVar() async {
342342
// This is the continuation block
343343
// CHECK-LABEL: define internal swifttailcc void @"$s27move_function_dbginfo_async20letArgCCFlowTrueTestyyxnYalFTQ4_"(
344344
// CHECK: call void @llvm.dbg.value(metadata %swift.opaque* undef, metadata !{{.*}}, metadata !DIExpression(DW_OP_deref)),
345+
346+
// DWARF: DW_TAG_subprogram
347+
// DWARF: DW_AT_linkage_name ("$s3out20letArgCCFlowTrueTestyyxnYalF")
348+
// DWARF: DW_AT_name ("letArgCCFlowTrueTest")
349+
350+
// DWARF: DW_TAG_formal_parameter
351+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8, DW_OP_deref)
352+
// DWARF-NEXT: DW_AT_name ("msg")
353+
//
354+
// DWARF: DW_AT_linkage_name ("$s3out20letArgCCFlowTrueTestyyxnYalFTQ0_")
355+
// DWARF-NEXT: DW_AT_name ("letArgCCFlowTrueTest")
356+
// DWARF: DW_TAG_formal_parameter
357+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value([[ASYNC_REG]]), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8, DW_OP_deref)
358+
// DWARF-NEXT: DW_AT_name ("msg")
359+
//
360+
// DWARF: DW_AT_linkage_name ("$s3out20letArgCCFlowTrueTestyyxnYalFTY1_")
361+
// DWARF-NEXT: DW_AT_name ("letArgCCFlowTrueTest")
362+
// DWARF: DW_TAG_formal_parameter
363+
// DWARF-NEXT: DW_AT_location (0x{{[a-f0-9]+}}:
364+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8, DW_OP_deref
365+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8, DW_OP_deref)
366+
// DWARF-NEXT: DW_AT_name ("msg")
367+
//
368+
// DWARF: DW_AT_linkage_name ("$s3out20letArgCCFlowTrueTestyyxnYalFTQ2_")
369+
// DWARF-NEXT: DW_AT_name ("letArgCCFlowTrueTest")
370+
// DWARF: DW_TAG_formal_parameter
371+
// DWARF-NEXT: DW_AT_name ("msg")
372+
//
373+
// DWARF: DW_AT_linkage_name ("$s3out20letArgCCFlowTrueTestyyxnYalFTQ3_")
374+
// DWARF-NEXT: DW_AT_name ("letArgCCFlowTrueTest")
375+
// DWARF: DW_TAG_formal_parameter
376+
// DWARF-NEXT: DW_AT_location (0x{{[a-f0-9]+}}:
377+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x8, DW_OP_deref)
378+
// DWARF-NEXT: DW_AT_name ("msg")
379+
//
380+
// DWARF: DW_AT_linkage_name ("$s3out20letArgCCFlowTrueTestyyxnYalFTQ4_")
381+
// DWARF-NEXT: DW_AT_name ("letArgCCFlowTrueTest")
382+
// DWARF: DW_TAG_formal_parameter
383+
// DWARF-NEXT: DW_AT_name ("msg")
345384
public func letArgCCFlowTrueTest<T>(_ msg: __owned T) async {
346385
await forceSplit1()
347386
if trueValue {
@@ -441,6 +480,58 @@ public func letArgCCFlowTrueTest<T>(_ msg: __owned T) async {
441480
// CHECK: musttail call swifttailcc void %{{[0-9]+}}(%swift.context* swiftasync
442481
// CHECK-NEXT: ret void,
443482
// CHECK-NEXT: }
483+
484+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlF")
485+
// DWARF: DW_AT_name ("varArgCCFlowTrueTest")
486+
// DWARF: DW_TAG_formal_parameter
487+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
488+
// DWARF-NEXT: DW_AT_name ("msg")
489+
//
490+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ0_")
491+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
492+
// DWARF: DW_TAG_formal_parameter
493+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value([[ASYNC_REG]]), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
494+
// DWARF-NEXT: DW_AT_name ("msg")
495+
//
496+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY1_")
497+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
498+
// DWARF: DW_TAG_formal_parameter
499+
// DWARF-NEXT: DW_AT_location (0x{{[a-f0-9]+}}:
500+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref
501+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
502+
// DWARF-NEXT: DW_AT_name ("msg")
503+
//
504+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ2_")
505+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
506+
// DWARF: DW_TAG_formal_parameter
507+
// DWARF-NEXT: DW_AT_name ("msg")
508+
//
509+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY3_")
510+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
511+
// DWARF: DW_TAG_formal_parameter
512+
// DWARF-NEXT: DW_AT_location (0x{{[a-f0-9]+}}:
513+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
514+
// DWARF-NEXT: DW_AT_name ("msg")
515+
//
516+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ4_")
517+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
518+
// DWARF: DW_TAG_formal_parameter
519+
// DWARF-NEXT: DW_AT_location (0x{{[a-f0-9]+}}:
520+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
521+
// DWARF-NEXT: DW_AT_name ("msg")
522+
//
523+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTY5_")
524+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
525+
// DWARF: DW_TAG_formal_parameter
526+
// DWARF-NEXT: DW_AT_location (0x{{[a-f0-9]+}}:
527+
// DWARF-NEXT: [0x{{[a-f0-9]+}}, 0x{{[a-f0-9]+}}): DW_OP_entry_value([[ASYNC_REG]]), DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
528+
// DWARF-NEXT: DW_AT_name ("msg")
529+
//
530+
// DWARF: DW_AT_linkage_name ("$s3out20varArgCCFlowTrueTestyyxzYaAA1PRzlFTQ6_")
531+
// DWARF-NEXT: DW_AT_name ("varArgCCFlowTrueTest")
532+
// DWARF: DW_TAG_formal_parameter
533+
// DWARF-NEXT: DW_AT_location (DW_OP_entry_value([[ASYNC_REG]]), DW_OP_deref, DW_OP_plus_uconst 0x10, DW_OP_plus_uconst 0x30, DW_OP_deref)
534+
// DWARF-NEXT: DW_AT_name ("msg")
444535
public func varArgCCFlowTrueTest<T : P>(_ msg: inout T) async {
445536
await forceSplit1()
446537
if trueValue {

0 commit comments

Comments
 (0)