2
2
// RUN: -module-name M -enable-experimental-concurrency | %FileCheck %s
3
3
// REQUIRES: concurrency
4
4
5
- // rdar//72473691
6
- // XFAIL: *
7
-
8
5
func use< T> ( _ t: T ) { }
9
6
func forceSplit( ) async {
10
7
}
@@ -13,33 +10,33 @@ func withGenericArg<T>(_ msg: T) async {
13
10
// this up after coroutine splitting.
14
11
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF"(%swift.task* %0, %swift.executor* %1, %swift.context* swiftasync %2)
15
12
// CHECK: call void @llvm.dbg.declare(metadata %swift.context** %[[ALLOCA:[^,]*]],
16
- // CHECK-SAME: metadata ![[MSG:[0-9]+]], metadata !DIExpression(
17
- // CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
18
- // CHECK: call void @llvm.dbg.declare(metadata %swift.context** %[[ALLOCA]],
19
13
// CHECK-SAME: metadata ![[TAU:[0-9]+]], metadata !DIExpression(
20
14
// CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}))
15
+ // CHECK: call void @llvm.dbg.declare(metadata %swift.context** %[[ALLOCA]],
16
+ // CHECK-SAME: metadata ![[MSG:[0-9]+]], metadata !DIExpression(
17
+ // CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
21
18
// CHECK: store %swift.context* %2, %swift.context** %[[ALLOCA]], align
22
19
23
20
await forceSplit ( )
24
21
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF.resume.0"(i8* %0, i8* %1, i8* swiftasync %2)
25
- // CHECK: store i8* %2, i8** %[[ALLOCA:.*]], align
26
- // CHECK: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
27
- // CHECK-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
22
+ // CHECK: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]*]],
23
+ // CHECK-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
28
24
// CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
29
- // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
25
+ // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref ))
30
26
// CHECK: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
31
- // CHECK-SAME: metadata ![[MSG_R :[0-9]+]], metadata !DIExpression(
27
+ // CHECK-SAME: metadata ![[TAU_R :[0-9]+]], metadata !DIExpression(
32
28
// CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
33
- // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
29
+ // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
30
+ // CHECK: store i8* %2, i8** %[[ALLOCA]], align
34
31
35
32
use ( msg)
36
33
}
37
34
// CHECK-LABEL: {{^define }}
38
35
runAsyncAndBlock {
39
36
await withGenericArg ( " hello (asynchronously) " )
40
37
}
41
- // CHECK: ![[MSG]] = !DILocalVariable(name: "msg", arg: 1,
42
38
// CHECK: ![[TAU]] = !DILocalVariable(name: "$\CF\84_0_0",
43
- // CHECK: ![[TAU_R ]] = !DILocalVariable(name: "$\CF\84_0_0" ,
39
+ // CHECK: ![[MSG ]] = !DILocalVariable(name: "msg", arg: 1 ,
44
40
// CHECK: ![[MSG_R]] = !DILocalVariable(name: "msg", arg: 1,
41
+ // CHECK: ![[TAU_R]] = !DILocalVariable(name: "$\CF\84_0_0",
45
42
0 commit comments