Skip to content

Commit 934fada

Browse files
authored
Merge pull request #71633 from gottesmm/pr-80d7b4ff374a28e466e520f8ff712e148bef9a3e
Re-enable test
2 parents 16e9902 + 188ac1a commit 934fada

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

test/Concurrency/transfernonsendable_instruction_matching.sil

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ struct NonSendableMoveOnlyStruct {
4949

5050
sil @constructMoveOnlyStruct : $@convention(thin) () -> @owned NonSendableMoveOnlyStruct
5151
sil @transferMoveOnlyStruct : $@convention(thin) @async (@guaranteed NonSendableMoveOnlyStruct) -> ()
52+
sil @transferMoveOnlyStructIndirectly : $@convention(thin) @async (@in_guaranteed NonSendableMoveOnlyStruct) -> ()
53+
sil @useMoveOnlyStructIndirectly : $@convention(thin) (@in_guaranteed NonSendableMoveOnlyStruct) -> ()
5254

5355
struct NonSendableStruct {
5456
var ns: NonSendableKlass
@@ -176,26 +178,24 @@ bb0:
176178
return %9999 : $()
177179
}
178180

179-
// sil [ossa] @mark_unresolved_noncopyable_value_test : $@convention(thin) @async () -> () {
180-
// bb0:
181-
// %0 = function_ref @constructMoveOnlyStruct : $@convention(thin) () -> @owned NonSendableMoveOnlyStruct
182-
// %1 = apply %0() : $@convention(thin) () -> @owned NonSendableMoveOnlyStruct
183-
// %box = alloc_box ${ var NonSendableMoveOnlyStruct }
184-
// %project = project_box %box : ${ var NonSendableMoveOnlyStruct }, 0
185-
// %unresolved = mark_unresolved_non_copyable_value [consumable_and_assignable] %project : $*NonSendableMoveOnlyStruct
186-
// store %1 to [init] %unresolved : $*NonSendableMoveOnlyStruct
187-
188-
// FIXME: rdar://122773845 substitution replacement type 'NonSendableMoveOnlyStruct' does not conform to protocol 'Copyable'
189-
// %4 = function_ref @transferIndirect : $@convention(thin) @async <τ_0_0> (@in_guaranteed τ_0_0) -> ()
190-
// apply [caller_isolation=nonisolated] [callee_isolation=global_actor] %4<NonSendableMoveOnlyStruct>(%unresolved) : $@convention(thin) @async <τ_0_0> (@in_guaranteed τ_0_0) -> ()
191-
// x-warning @-1 {{transferring value of non-Sendable type 'NonSendableMoveOnlyStruct' from nonisolated context to global actor '<null>'-isolated context; later accesses could race}}
192-
// %5 = function_ref @useIndirect : $@convention(thin) <τ_0_0> (@in_guaranteed τ_0_0) -> ()
193-
// apply %5<NonSendableMoveOnlyStruct>(%unresolved) : $@convention(thin) <τ_0_0> (@in_guaranteed τ_0_0) -> ()
194-
// x-note @-1 {{access here could race}}
195-
// destroy_value %box : ${ var NonSendableMoveOnlyStruct }
196-
// %9999 = tuple ()
197-
// return %9999 : $()
198-
// }
181+
sil [ossa] @mark_unresolved_noncopyable_value_test : $@convention(thin) @async () -> () {
182+
bb0:
183+
%0 = function_ref @constructMoveOnlyStruct : $@convention(thin) () -> @owned NonSendableMoveOnlyStruct
184+
%1 = apply %0() : $@convention(thin) () -> @owned NonSendableMoveOnlyStruct
185+
%box = alloc_box ${ var NonSendableMoveOnlyStruct }
186+
%project = project_box %box : ${ var NonSendableMoveOnlyStruct }, 0
187+
%unresolved = mark_unresolved_non_copyable_value [consumable_and_assignable] %project : $*NonSendableMoveOnlyStruct
188+
store %1 to [init] %unresolved : $*NonSendableMoveOnlyStruct
189+
%4 = function_ref @transferMoveOnlyStructIndirectly : $@convention(thin) @async (@in_guaranteed NonSendableMoveOnlyStruct) -> ()
190+
apply [caller_isolation=nonisolated] [callee_isolation=global_actor] %4(%unresolved) : $@convention(thin) @async (@in_guaranteed NonSendableMoveOnlyStruct) -> ()
191+
// expected-warning @-1 {{transferring value of non-Sendable type 'NonSendableMoveOnlyStruct' from nonisolated context to global actor '<null>'-isolated context; later accesses could race}}
192+
%5 = function_ref @useMoveOnlyStructIndirectly : $@convention(thin) (@in_guaranteed NonSendableMoveOnlyStruct) -> ()
193+
apply %5(%unresolved) : $@convention(thin) (@in_guaranteed NonSendableMoveOnlyStruct) -> ()
194+
// expected-note @-1 {{access here could race}}
195+
destroy_value %box : ${ var NonSendableMoveOnlyStruct }
196+
%9999 = tuple ()
197+
return %9999 : $()
198+
}
199199

200200
sil [ossa] @mark_unresolved_reference_binding_test : $@convention(thin) @async () -> () {
201201
bb0:

0 commit comments

Comments
 (0)