Skip to content

Commit ee24bdf

Browse files
authored
Merge pull request #72402 from beccadax/noreturn-for-tomorrow
[PrintAsClang] Fix thunks for Never funcs
2 parents cb12b0c + fa2ebd9 commit ee24bdf

36 files changed

+204
-122
lines changed

lib/PrintAsClang/DeclAndTypePrinter.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,7 +1410,10 @@ class DeclAndTypePrinter::Implementation
14101410
/// Print C or C++ trailing attributes for a function declaration.
14111411
void printFunctionClangAttributes(FuncDecl *FD, AnyFunctionType *funcTy) {
14121412
if (funcTy->getResult()->isUninhabited()) {
1413-
os << " SWIFT_NORETURN";
1413+
if (funcTy->isThrowing())
1414+
os << " SWIFT_NORETURN_EXCEPT_ERRORS";
1415+
else
1416+
os << " SWIFT_NORETURN";
14141417
} else if (!funcTy->getResult()->isVoid() &&
14151418
!FD->getAttrs().hasAttribute<DiscardableResultAttr>()) {
14161419
os << " SWIFT_WARN_UNUSED_RESULT";
@@ -1489,8 +1492,13 @@ class DeclAndTypePrinter::Implementation
14891492
// Swift functions can't throw exceptions, we can only
14901493
// throw them from C++ when emitting C++ inline thunks for the Swift
14911494
// functions.
1492-
if (!funcTy->isThrowing())
1495+
if (!funcTy->isThrowing()) {
14931496
os << " SWIFT_NOEXCEPT";
1497+
// Lowered Never-returning functions *are* considered to return when they
1498+
// throw, so only use SWIFT_NORETURN on non-throwing functions.
1499+
if (funcTy->getResult()->isUninhabited())
1500+
os << " SWIFT_NORETURN";
1501+
}
14941502
if (!funcABI.useCCallingConvention())
14951503
os << " SWIFT_CALL";
14961504
printAvailability(FD);

lib/PrintAsClang/PrintClangFunction.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,12 @@ static bool printDirectReturnOrParamCType(
604604
addABIRecordToTypeEncoding(typeEncodingOS, offset, end, t, typeMapping);
605605
}))
606606
return false;
607+
if (isResultType && Count == 0) {
608+
// A direct result with no record members can happen for uninhabited result
609+
// types like `Never`.
610+
os << "void";
611+
return true;
612+
}
607613
assert(Count > 0 && "missing return values");
608614

609615
// FIXME: is this "prettyfying" logic sound for multiple return values?
@@ -1421,7 +1427,7 @@ void DeclAndTypeClangFunctionPrinter::printCxxThunkBody(
14211427
if (!resultTy->isVoid() && hasThrows)
14221428
os << " auto returnValue = ";
14231429
// If the function doesn't have a return value just call it.
1424-
else if (resultTy->isVoid() && hasThrows)
1430+
else if (resultTy->isVoid())
14251431
os << " ";
14261432
// If the function can't throw just return its value result.
14271433
else if (!hasThrows)
@@ -1438,6 +1444,8 @@ void DeclAndTypeClangFunctionPrinter::printCxxThunkBody(
14381444
if (resultTy->isVoid()) {
14391445
os << " return swift::Expected<void>(swift::Error(opaqueError));\n";
14401446
os << "#endif\n";
1447+
if (FD->getInterfaceType()->castTo<FunctionType>()->getResult()->isUninhabited())
1448+
os << " abort();\n";
14411449
} else {
14421450
auto directResultType = signature.getDirectResultType();
14431451
printDirectReturnOrParamCType(

lib/PrintAsClang/_SwiftStdlibCxxOverlay.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,12 +413,14 @@ template<class T>
413413
using ThrowingResult = T;
414414

415415
#define SWIFT_RETURN_THUNK(T, v) v
416+
#define SWIFT_NORETURN_EXCEPT_ERRORS SWIFT_NORETURN
416417

417418
#else
418419

419420
template <class T> using ThrowingResult = swift::Expected<T>;
420421

421422
#define SWIFT_RETURN_THUNK(T, v) swift::Expected<T>(v)
423+
#define SWIFT_NORETURN_EXCEPT_ERRORS
422424

423425
#endif
424426

test/Interop/CxxToSwiftToCxx/bridge-cxx-struct-back-to-cxx.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -283,23 +283,23 @@ public struct Strct {
283283
// CHECK-NEXT: }
284284

285285
// CHECK: void takeImmortal(ns::Immortal *_Nonnull x) noexcept SWIFT_SYMBOL({{.*}}) {
286-
// CHECK-NEXT: return _impl::$s8UseCxxTy12takeImmortalyySo2nsO0E0VF(x);
286+
// CHECK-NEXT: _impl::$s8UseCxxTy12takeImmortalyySo2nsO0E0VF(x);
287287
// CHECK-NEXT: }
288288

289289
// CHECK: void takeImmortalTemplate(ns::ImmortalTemplate<int> *_Nonnull x) noexcept SWIFT_SYMBOL({{.*}}) {
290-
// CHECK-NEXT: return _impl::$s8UseCxxTy20takeImmortalTemplateyySo2nsO0028ImmortalTemplateCInt_jBAGgnbVF(x);
290+
// CHECK-NEXT: _impl::$s8UseCxxTy20takeImmortalTemplateyySo2nsO0028ImmortalTemplateCInt_jBAGgnbVF(x);
291291
// CHECK-NEXT: }
292292

293293
// CHECK: SWIFT_INLINE_THUNK void takeNonTrivial2(const ns::NonTrivialTemplate<ns::TrivialinNS>& x) noexcept SWIFT_SYMBOL({{.*}}) {
294-
// CHECK-NEXT: return _impl::$s8UseCxxTy15takeNonTrivial2yySo2nsO0037NonTrivialTemplateTrivialinNS_CsGGkdcVF(swift::_impl::getOpaquePointer(x));
294+
// CHECK-NEXT: _impl::$s8UseCxxTy15takeNonTrivial2yySo2nsO0037NonTrivialTemplateTrivialinNS_CsGGkdcVF(swift::_impl::getOpaquePointer(x));
295295
// CHECK-NEXT: }
296296

297297
// CHECK: SWIFT_INLINE_THUNK void takeTrivial(const Trivial& x) noexcept SWIFT_SYMBOL({{.*}}) {
298-
// CHECK-NEXT: return _impl::$s8UseCxxTy11takeTrivialyySo0E0VF(_impl::swift_interop_passDirect_UseCxxTy_uint32_t_0_4(reinterpret_cast<const char *>(swift::_impl::getOpaquePointer(x))));
298+
// CHECK-NEXT: _impl::$s8UseCxxTy11takeTrivialyySo0E0VF(_impl::swift_interop_passDirect_UseCxxTy_uint32_t_0_4(reinterpret_cast<const char *>(swift::_impl::getOpaquePointer(x))));
299299
// CHECK-NEXT: }
300300

301301
// CHECK: SWIFT_INLINE_THUNK void takeTrivialInout(Trivial& x) noexcept SWIFT_SYMBOL({{.*}}) {
302-
// CHECK-NEXT: return _impl::$s8UseCxxTy16takeTrivialInoutyySo0E0VzF(swift::_impl::getOpaquePointer(x));
302+
// CHECK-NEXT: _impl::$s8UseCxxTy16takeTrivialInoutyySo0E0VzF(swift::_impl::getOpaquePointer(x));
303303
// CHECK-NEXT: }
304304

305305
// CHECK: SWIFT_INLINE_THUNK anonymousStruct Strct::getTransform() const {

test/Interop/ObjCToSwiftToObjCxx/bridge-objc-types-back-to-objcxx.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ public func retObjClassNullable() -> ObjCKlass? {
6666
// CHECK-NEXT: return (__bridge_transfer ObjCKlass *)(__bridge void *)_impl::$s9UseObjCTy03retB13ClassNullableSo0B6CKlassCSgyF();
6767

6868
// CHECK: void takeObjCClass(ObjCKlass *_Nonnull x) noexcept SWIFT_SYMBOL({{.*}}) {
69-
// CHECK-NEXT: return _impl::$s9UseObjCTy04takeB6CClassyySo0B6CKlassCF(x);
69+
// CHECK-NEXT: _impl::$s9UseObjCTy04takeB6CClassyySo0B6CKlassCF(x);
7070

7171
// CHECK: SWIFT_INLINE_THUNK void takeObjCClassInout(ObjCKlass *_Nonnull __strong & x) noexcept SWIFT_SYMBOL({{.*}}) {
72-
// CHECK-NEXT: return _impl::$s9UseObjCTy04takeB11CClassInoutyySo0B6CKlassCzF(&x);
72+
// CHECK-NEXT: _impl::$s9UseObjCTy04takeB11CClassInoutyySo0B6CKlassCzF(&x);
7373

7474
// CHECK: SWIFT_INLINE_THUNK void takeObjCClassNullable(ObjCKlass *_Nullable x) noexcept SWIFT_SYMBOL({{.*}}) {
75-
// CHECK-NEXT: return _impl::$s9UseObjCTy04takeB14CClassNullableyySo0B6CKlassCSgF(x);
75+
// CHECK-NEXT: _impl::$s9UseObjCTy04takeB14CClassNullableyySo0B6CKlassCSgF(x);

test/Interop/SwiftToCxx/class/swift-class-in-cxx.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@ public func takeClassWithIntFieldInout(_ x: inout ClassWithIntField) {
134134
// CHECK-NEXT: }
135135

136136
// CHECK: SWIFT_INLINE_THUNK void takeClassWithIntField(const ClassWithIntField& x) noexcept SWIFT_SYMBOL("s:5Class04takeA12WithIntFieldyyAA0acdE0CF") {
137-
// CHECK-NEXT: return _impl::$s5Class04takeA12WithIntFieldyyAA0acdE0CF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(x));
137+
// CHECK-NEXT: _impl::$s5Class04takeA12WithIntFieldyyAA0acdE0CF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(x));
138138
// CHECK-NEXT: }
139139

140140
// CHECK: SWIFT_INLINE_THUNK void takeClassWithIntFieldInout(ClassWithIntField& x) noexcept SWIFT_SYMBOL("s:5Class04takeA17WithIntFieldInoutyyAA0acdE0CzF") {
141-
// CHECK-NEXT: return _impl::$s5Class04takeA17WithIntFieldInoutyyAA0acdE0CzF(&::swift::_impl::_impl_RefCountedClass::getOpaquePointerRef(x));
141+
// CHECK-NEXT: _impl::$s5Class04takeA17WithIntFieldInoutyyAA0acdE0CzF(&::swift::_impl::_impl_RefCountedClass::getOpaquePointerRef(x));
142142
// CHECK-NEXT: }

test/Interop/SwiftToCxx/class/swift-class-virtual-method-dispatch.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
128128
// CHECK-NEXT: decltype(_impl::$s5Class04BaseA0C13virtualMethodyyF) * func;
129129
// CHECK-NEXT: };
130130
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + [[#VM1:]] / sizeof(void *));
131-
// CHECK-NEXT: return (* fptrptr_->func)(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
131+
// CHECK-NEXT: (* fptrptr_->func)(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
132132
// CHECK-NEXT: }
133133

134134
// CHECK: swift::Int BaseClass::virtualMethodIntInt(swift::Int x) {
@@ -188,7 +188,7 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
188188
// CHECK-NEXT: decltype(_impl::$s5Class04BaseA0C21virtualComputedGetSets5Int64Vvs) * func;
189189
// CHECK-NEXT: };
190190
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + [[#VM5:]] / sizeof(void *));
191-
// CHECK-NEXT: return (* fptrptr_->func)(newValue, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
191+
// CHECK-NEXT: (* fptrptr_->func)(newValue, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
192192
// CHECK-NEXT: }
193193

194194
// CHECK: swift::Int BaseClass::getStoredProp() {
@@ -216,7 +216,7 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
216216
// CHECK-NEXT: decltype(_impl::$s5Class04BaseA0C10storedPropSivs) * func;
217217
// CHECK-NEXT: };
218218
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + [[#VM8:]] / sizeof(void *));
219-
// CHECK-NEXT: return (* fptrptr_->func)(value, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
219+
// CHECK-NEXT: (* fptrptr_->func)(value, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
220220
// CHECK-NEXT: }
221221

222222
// CHECK: swift::Int BaseClass::operator [](swift::Int i) const
@@ -244,7 +244,7 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
244244
// CHECK-NEXT: decltype(_impl::$s5Class07DerivedA0C13virtualMethodyyF) * func;
245245
// CHECK-NEXT: };
246246
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + [[#VM1]] / sizeof(void *));
247-
// CHECK-NEXT: return (* fptrptr_->func)(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
247+
// CHECK-NEXT: (* fptrptr_->func)(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
248248
// CHECK-NEXT: }
249249

250250
// CHECK: swift::Int DerivedClass::virtualMethodIntInt(swift::Int x) {
@@ -314,7 +314,7 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
314314
// CHECK-NEXT: decltype(_impl::$s5Class07DerivedA0C21virtualComputedGetSets5Int64Vvs) * func;
315315
// CHECK-NEXT: };
316316
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + [[#VM5]] / sizeof(void *));
317-
// CHECK-NEXT: return (* fptrptr_->func)(newValue, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
317+
// CHECK-NEXT: (* fptrptr_->func)(newValue, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
318318
// CHECK-NEXT: }
319319

320320
// CHECK: swift::Int DerivedClass::getStoredProp() {
@@ -342,7 +342,7 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
342342
// CHECK-NEXT: decltype(_impl::$s5Class07DerivedA0C10storedPropSivs) * func;
343343
// CHECK-NEXT: };
344344
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + [[#VM8]] / sizeof(void *));
345-
// CHECK-NEXT: return (* fptrptr_->func)(newValue, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
345+
// CHECK-NEXT: (* fptrptr_->func)(newValue, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
346346
// CHECK-NEXT: }
347347

348348
// CHECK: swift::Int DerivedClass::operator [](swift::Int i) const
@@ -359,15 +359,15 @@ public func returnDerivedDerivedClass() -> DerivedDerivedClass {
359359
// CHECK-NEXT: return (* fptrptr_->func)(i, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
360360

361361
// CHECK: void DerivedDerivedClass::virtualMethod() {
362-
// CHECK-NEXT: return _impl::$s5Class07DerivedbA0C13virtualMethodyyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
362+
// CHECK-NEXT: _impl::$s5Class07DerivedbA0C13virtualMethodyyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
363363
// CHECK-NEXT: }
364364

365365
// CHECK: BaseClass DerivedDerivedClass::virtualMethodInDerived(const BaseClass& x) {
366366
// CHECK-NEXT: return _impl::_impl_BaseClass::makeRetained(_impl::$s5Class07DerivedbA0C015virtualMethodInB0yAA04BaseA0CAFF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(x), ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this)));
367367
// CHECK-NEXT: }
368368

369369
// CHECK: void DerivedDerivedClass::methodInDerivedDerived() {
370-
// CHECK-NEXT: return _impl::$s5Class07DerivedbA0C08methodInbB0yyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
370+
// CHECK-NEXT: _impl::$s5Class07DerivedbA0C08methodInbB0yyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
371371
// CHECK-NEXT: }
372372

373373
// CHECK: swift::Int DerivedDerivedClass::getStoredProp() {

test/Interop/SwiftToCxx/class/swift-resilient-class-virtual-method-dispatch.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// CHECK-NEXT: SWIFT_EXTERN ptrdiff_t $s5Class04BaseA0C19virtualComputedPropSivgTj(SWIFT_CONTEXT void * _Nonnull _self) SWIFT_NOEXCEPT SWIFT_CALL; // dispatch thunk for
1414

1515
// CHECK: void BaseClass::virtualMethod() {
16-
// CHECK-NEXT: return _impl::$s5Class04BaseA0C13virtualMethodyyFTj(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
16+
// CHECK-NEXT: _impl::$s5Class04BaseA0C13virtualMethodyyFTj(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
1717
// CHECK-NEXT: }
1818

1919
// CHECK: swift::Int BaseClass::virtualMethodIntInt(swift::Int x) {
@@ -43,7 +43,7 @@
4343
// CHECK-NEXT: return _impl::$s5Class04BaseA0CyS2icigTj(i, ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
4444

4545
// CHECK: void DerivedClass::virtualMethod() {
46-
// CHECK-NEXT: return _impl::$s5Class04BaseA0C13virtualMethodyyFTj(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
46+
// CHECK-NEXT: _impl::$s5Class04BaseA0C13virtualMethodyyFTj(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
4747
// CHECK-NEXT: }
4848

4949
// CHECK: swift::Int DerivedClass::virtualMethodIntInt(swift::Int x) {
@@ -59,15 +59,15 @@
5959

6060

6161
// CHECK: void DerivedDerivedClass::virtualMethod() {
62-
// CHECK-NEXT: return _impl::$s5Class07DerivedbA0C13virtualMethodyyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
62+
// CHECK-NEXT: _impl::$s5Class07DerivedbA0C13virtualMethodyyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
6363
// CHECK-NEXT: }
6464

6565
// CHECK: BaseClass DerivedDerivedClass::virtualMethodInDerived(const BaseClass& x) {
6666
// CHECK-NEXT: return _impl::_impl_BaseClass::makeRetained(_impl::$s5Class07DerivedbA0C015virtualMethodInB0yAA04BaseA0CAFF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(x), ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this)));
6767
// CHECK-NEXT: }
6868

6969
// CHECK: void DerivedDerivedClass::methodInDerivedDerived() {
70-
// CHECK-NEXT: return _impl::$s5Class07DerivedbA0C08methodInbB0yyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
70+
// CHECK-NEXT: _impl::$s5Class07DerivedbA0C08methodInbB0yyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
7171
// CHECK-NEXT: }
7272

7373
// CHECK: swift::Int DerivedDerivedClass::getStoredProp() {

test/Interop/SwiftToCxx/class/swift-subclass-of-resilient-class-virtual-method-dispatch.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public func createCrossModuleDerivedDerivedClass() -> CrossModuleDerivedDerivedC
8484

8585

8686
// CHECK: void CrossModuleDerivedClass::virtualMethod() {
87-
// CHECK-NEXT: return _impl::$s5Class04BaseA0C13virtualMethodyyFTj(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
87+
// CHECK-NEXT: _impl::$s5Class04BaseA0C13virtualMethodyyFTj(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
8888

8989
// CHECK: void CrossModuleDerivedClass::virtualMethodInDerived() {
9090
// CHECK-NEXT: void ***selfPtr_ = reinterpret_cast<void ***>( ::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
@@ -97,7 +97,7 @@ public func createCrossModuleDerivedDerivedClass() -> CrossModuleDerivedDerivedC
9797
// CHECK-NEXT: decltype(_impl::$s8UseClass018CrossModuleDerivedB0C015virtualMethodInE0yyF) * func;
9898
// CHECK-NEXT: };
9999
// CHECK-NEXT: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + (_impl::$s8UseClass018CrossModuleDerivedB0CMo + 0) / sizeof(void *));
100-
// CHECK-NEXT: return (* fptrptr_->func)(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
100+
// CHECK-NEXT: (* fptrptr_->func)(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
101101
// CHECK-NEXT: }
102102

103103
// CHECK: swift::Int CrossModuleDerivedClass::getDerivedComputedProp() {
@@ -113,4 +113,4 @@ public func createCrossModuleDerivedDerivedClass() -> CrossModuleDerivedDerivedC
113113
// CHECK: FTypeAddress *fptrptr_ = reinterpret_cast<FTypeAddress *>(vtable_ + (_impl::$s8UseClass018CrossModuleDerivedB0CMo + [[#VM1]]) / sizeof(void *));
114114

115115
// CHECK: void CrossModuleDerivedDerivedClass::virtualMethod2InDerived() {
116-
// CHECK-NEXT: return _impl::$s8UseClass018CrossModuleDerivedeB0C016virtualMethod2InE0yyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));
116+
// CHECK-NEXT: _impl::$s8UseClass018CrossModuleDerivedeB0C016virtualMethod2InE0yyF(::swift::_impl::_impl_RefCountedClass::getOpaquePointer(*this));

test/Interop/SwiftToCxx/cross-module-refs/imported-enum-refs-in-cxx.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public func inoutLargeEnum(_ s: inout LargeEnum) {
2222
}
2323

2424
// CHECK: SWIFT_INLINE_THUNK void inoutLargeEnum(Enums::LargeEnum& s) noexcept SWIFT_SYMBOL("s:9UsesEnums14inoutLargeEnumyy0B00dE0OzF") {
25-
// CHECK-NEXT: return _impl::$s9UsesEnums14inoutLargeEnumyy0B00dE0OzF(Enums::_impl::_impl_LargeEnum::getOpaquePointer(s));
25+
// CHECK-NEXT: _impl::$s9UsesEnums14inoutLargeEnumyy0B00dE0OzF(Enums::_impl::_impl_LargeEnum::getOpaquePointer(s));
2626
// CHECK-NEXT: }
2727

2828
// CHECK: SWIFT_INLINE_THUNK Enums::LargeEnum UsesEnumsLargeEnum::passThroughStructSeveralI64(const Enums::LargeEnum& y) const {

test/Interop/SwiftToCxx/cross-module-refs/imported-struct-refs-in-cxx.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public func passThroughStructSmallDirect(_ x: SmallStructDirectPassing) -> Small
3838
}
3939

4040
// CHECK: SWIFT_INLINE_THUNK void inoutStructSeveralI64(Structs::StructSeveralI64& s) noexcept SWIFT_SYMBOL("s:11UsesStructs21inoutStructSeveralI64yy0B00deF0VzF") {
41-
// CHECK-NEXT: return _impl::$s11UsesStructs21inoutStructSeveralI64yy0B00deF0VzF(Structs::_impl::_impl_StructSeveralI64::getOpaquePointer(s));
41+
// CHECK-NEXT: _impl::$s11UsesStructs21inoutStructSeveralI64yy0B00deF0VzF(Structs::_impl::_impl_StructSeveralI64::getOpaquePointer(s));
4242
// CHECK-NEXT: }
4343

4444

test/Interop/SwiftToCxx/enums/enum-member-param-no-shadow-case.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ public enum E {
2828
// CHECK: _impl::$s5Enums1EO10takeParamAyySiF(a_,
2929

3030
// CHECK: void E::takeParamB(swift::Int b_) {
31-
// CHECK: return _impl::$s5Enums1EO10takeParamByySiFZ(b_);
31+
// CHECK: _impl::$s5Enums1EO10takeParamByySiFZ(b_);

test/Interop/SwiftToCxx/enums/large-enums-pass-return-in-cxx.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public func inoutLarge(_ en: inout Large, _ x: Int) {
4545
// CHECK: class SWIFT_SYMBOL("s:5Enums5LargeO") Large final {
4646

4747
// CHECK: SWIFT_INLINE_THUNK void inoutLarge(Large& en, swift::Int x) noexcept SWIFT_SYMBOL("s:5Enums10inoutLargeyyAA0C0Oz_SitF") {
48-
// CHECK-NEXT: return _impl::$s5Enums10inoutLargeyyAA0C0Oz_SitF(_impl::_impl_Large::getOpaquePointer(en), x);
48+
// CHECK-NEXT: _impl::$s5Enums10inoutLargeyyAA0C0Oz_SitF(_impl::_impl_Large::getOpaquePointer(en), x);
4949
// CHECK-NEXT: }
5050

5151
// CHECK: SWIFT_INLINE_THUNK Large makeLarge(swift::Int x) noexcept SWIFT_SYMBOL("s:5Enums9makeLargeyAA0C0OSiF") SWIFT_WARN_UNUSED_RESULT {
@@ -61,5 +61,5 @@ public func inoutLarge(_ en: inout Large, _ x: Int) {
6161
// CHECK-NEXT: }
6262

6363
// CHECK: SWIFT_INLINE_THUNK void printLarge(const Large& en) noexcept SWIFT_SYMBOL("s:5Enums10printLargeyyAA0C0OF") {
64-
// CHECK-NEXT: return _impl::$s5Enums10printLargeyyAA0C0OF(_impl::_impl_Large::getOpaquePointer(en));
64+
// CHECK-NEXT: _impl::$s5Enums10printLargeyyAA0C0OF(_impl::_impl_Large::getOpaquePointer(en));
6565
// CHECK-NEXT: }

0 commit comments

Comments
 (0)