[interop][SwiftToCxx] moving a Swift class in C++ performs a copy

C++ does not have a consuming move, so fallback to copy instead

Resolves https://github.com/apple/swift/issues/64702
This commit is contained in:
Alex Lorenz
2023-05-07 06:47:02 -07:00
committed by Alex Lorenz
parent a1dc63ec46
commit 16b1fe173f
3 changed files with 53 additions and 5 deletions

View File

@@ -95,6 +95,17 @@ int main() {
// CHECK-NEXT: useDerivedClass, type=Class.DerivedDerivedClass
// CHECK-NEXT: destroy DerivedDerivedClass
// CHECK-NEXT: destroy DerivedClass
// CHECK-NEXT: destroy BaseClass
{
BaseClass x = returnDerivedClass();
assert(getRetainCount(x) == 1);
useBaseClass(x);
}
// CHECK-NEXT: init BaseClass
// CHECK-NEXT: init DerivedClass
// CHECK-NEXT: useBaseClass, type=Class.DerivedClass
// CHECK-NEXT: destroy DerivedClass
// CHECK-NEXT: destroy BaseClass
return 0;
}