Skip to content

Commit f37ab1b

Browse files
committed
Merge remote-tracking branch 'origin/master' into master-next
2 parents d8dbed7 + 7c1ab33 commit f37ab1b

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

lib/SILOptimizer/Utils/SILInliner.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -559,15 +559,18 @@ SILValue SILInlineCloner::borrowFunctionArgument(SILValue callArg,
559559
|| callArg.getOwnershipKind() != ValueOwnershipKind::Owned) {
560560
return callArg;
561561
}
562-
auto *borrow = getBuilder().createBeginBorrow(AI.getLoc(), callArg);
562+
563+
SILBuilderWithScope beginBuilder(AI.getInstruction(), getBuilder());
564+
auto *borrow = beginBuilder.createBeginBorrow(AI.getLoc(), callArg);
563565
if (auto *tryAI = dyn_cast<TryApplyInst>(AI)) {
564-
SILBuilder returnBuilder(tryAI->getNormalBB()->begin());
566+
SILBuilderWithScope returnBuilder(tryAI->getNormalBB()->begin());
565567
returnBuilder.createEndBorrow(AI.getLoc(), borrow, callArg);
566568

567-
SILBuilder throwBuilder(tryAI->getErrorBB()->begin());
569+
SILBuilderWithScope throwBuilder(tryAI->getErrorBB()->begin());
568570
throwBuilder.createEndBorrow(AI.getLoc(), borrow, callArg);
569571
} else {
570-
SILBuilder returnBuilder(std::next(AI.getInstruction()->getIterator()));
572+
SILBuilderWithScope returnBuilder(
573+
std::next(AI.getInstruction()->getIterator()));
571574
returnBuilder.createEndBorrow(AI.getLoc(), borrow, callArg);
572575
}
573576
return borrow;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// REQUIRES: objc_interop
2+
3+
// RUN: %target-swift-frontend -emit-sil %s -Onone -Xllvm \
4+
// RUN: -sil-print-after=mandatory-inlining \
5+
// RUN: -enable-ownership-stripping-after-serialization \
6+
// RUN: -Xllvm -sil-print-debuginfo -o /dev/null 2>&1 | %FileCheck %s
7+
8+
// CHECK: begin_borrow {{.*}} : $OSLog, loc {{.*}}, scope 5
9+
// CHECK: tuple (), loc {{.*}}, scope 5
10+
// CHECK: end_borrow %9 : $OSLog, loc {{.*}}, scope 5
11+
12+
import os
13+
14+
func bar() {
15+
if #available(macOS 10.14, iOS 12.0, watchOS 5.0, tvOS 12.0, *) {
16+
foo(OSLog.default)
17+
}
18+
}
19+
20+
@_transparent
21+
func foo(_ logObject: OSLog) { }

0 commit comments

Comments
 (0)