Skip to content

Commit 71d02ef

Browse files
committed
[cxx-interop] Fix a test for move-only types
rdar://128424443
1 parent dbe1a98 commit 71d02ef

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

test/Interop/Cxx/class/move-only/inherited-field-access-silgen.swift

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// RUN: %target-swift-emit-sil -I %S/Inputs -cxx-interoperability-mode=swift-6 %s -validate-tbd-against-ir=none | %FileCheck %s
22
// RUN: %target-swift-emit-sil -I %S/Inputs -cxx-interoperability-mode=upcoming-swift %s -validate-tbd-against-ir=none | %FileCheck %s
33

4-
// REQUIRES: rdar128424443
5-
64
import MoveOnlyCxxValueType
75

86
func testGetX() -> CInt {
@@ -19,10 +17,17 @@ func testSetX(_ x: CInt) {
1917

2018
testSetX(2)
2119

22-
// CHECK: sil shared [transparent] @$sSo024NonCopyableHolderDerivedD0V1xSo0aB0Vvlu : $@convention(method) (@in_guaranteed NonCopyableHolderDerivedDerived) -> UnsafePointer<NonCopyable>
23-
// CHECK: {{.*}}(%[[SELF_VAL:.*]] : $*NonCopyableHolderDerivedDerived):
20+
// Beware: this test exhibits a subtle difference between open source Clang and AppleClang:
21+
// AppleClang runs in an ABI compatibility mode with Clang <= 4, which uses a
22+
// different criteria to determine whether a C++ type can be passed in
23+
// registers. This causes Swift to assume that NonCopyableHolderDerivedDerived
24+
// can be both loadable or address-only, depending on the compiler flavor used.
25+
// (rdar://128424443)
26+
27+
// CHECK: sil shared [transparent] @$sSo024NonCopyableHolderDerivedD0V1xSo0aB0Vvlu : $@convention(method) (@{{(in_)?}}guaranteed NonCopyableHolderDerivedDerived) -> UnsafePointer<NonCopyable>
28+
// CHECK: {{.*}}(%[[SELF_VAL:.*]] : ${{(\*)?}}NonCopyableHolderDerivedDerived):
2429
// CHECK: function_ref @{{.*}}__synthesizedBaseCall___synthesizedBaseGetterAccessor{{.*}} : $@convention(cxx_method) (@in_guaranteed NonCopyableHolderDerivedDerived) -> UnsafePointer<NonCopyable>
25-
// CHECK-NEXT: apply %{{.*}}(%[[SELF_VAL]])
30+
// CHECK-NEXT: apply %{{.*}}
2631

2732
// CHECK: sil shared [transparent] @$sSo024NonCopyableHolderDerivedD0V1xSo0aB0Vvau : $@convention(method) (@inout NonCopyableHolderDerivedDerived) -> UnsafeMutablePointer<NonCopyable>
2833
// CHECK: function_ref @{{.*}}__synthesizedBaseCall___synthesizedBaseSetterAccessor{{.*}} : $@convention(cxx_method) (@inout NonCopyableHolderDerivedDerived) -> UnsafeMutablePointer<NonCopyable>

0 commit comments

Comments
 (0)