@@ -2117,7 +2117,25 @@ swift::SILBuilder BridgedBuilder::unbridged() const {
2117
2117
}
2118
2118
2119
2119
swift::SILLocation BridgedBuilder::regularLoc () const {
2120
- return swift::RegularLocation (loc.getLoc ().getLocation ());
2120
+ auto l = loc.getLoc ().getLocation ();
2121
+ switch (l.getKind ()) {
2122
+ case swift::SILLocation::ReturnKind:
2123
+ case swift::SILLocation::ImplicitReturnKind:
2124
+ case swift::SILLocation::ArtificialUnreachableKind:
2125
+ return swift::RegularLocation (l);
2126
+ default :
2127
+ return l;
2128
+ }
2129
+ }
2130
+
2131
+ swift::SILLocation BridgedBuilder::returnLoc () const {
2132
+ auto l = loc.getLoc ().getLocation ();
2133
+ switch (l.getKind ()) {
2134
+ case swift::SILLocation::ArtificialUnreachableKind:
2135
+ return swift::RegularLocation (l);
2136
+ default :
2137
+ return l;
2138
+ }
2121
2139
}
2122
2140
2123
2141
BridgedInstruction BridgedBuilder::createBuiltin (BridgedStringRef name, BridgedType type,
@@ -2399,7 +2417,7 @@ BridgedInstruction BridgedBuilder::createWitnessMethod(BridgedCanType lookupType
2399
2417
2400
2418
2401
2419
BridgedInstruction BridgedBuilder::createReturn (BridgedValue op) const {
2402
- return {unbridged ().createReturn (regularLoc (), op.getSILValue ())};
2420
+ return {unbridged ().createReturn (returnLoc (), op.getSILValue ())};
2403
2421
}
2404
2422
2405
2423
BridgedInstruction BridgedBuilder::createThrow (BridgedValue op) const {
@@ -2465,7 +2483,7 @@ BridgedInstruction BridgedBuilder::createBranch(BridgedBasicBlock destBlock, Bri
2465
2483
}
2466
2484
2467
2485
BridgedInstruction BridgedBuilder::createUnreachable () const {
2468
- return {unbridged ().createUnreachable (regularLoc ())};
2486
+ return {unbridged ().createUnreachable (loc. getLoc (). getLocation ())};
2469
2487
}
2470
2488
2471
2489
BridgedInstruction BridgedBuilder::createObject (BridgedType type,
0 commit comments