Skip to content

Commit 9e0b86d

Browse files
committed
Swift SIL: add Builder.createUnreachable()
1 parent c180d13 commit 9e0b86d

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

SwiftCompilerSources/Sources/SIL/Builder.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,12 @@ public struct Builder {
187187
return bi.getAs(BranchInst.self)
188188
}
189189
}
190+
191+
@discardableResult
192+
public func createUnreachable() -> UnreachableInst {
193+
notifyInstructionsChanged()
194+
notifyBranchesChanged()
195+
let ui = SILBuilder_createUnreachable(bridged)
196+
return ui.getAs(UnreachableInst.self)
197+
}
190198
}

include/swift/SIL/SILBridging.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,7 @@ BridgedInstruction SILBuilder_createUncheckedEnumData(BridgedBuilder builder,
456456
BridgedInstruction SILBuilder_createBranch(
457457
BridgedBuilder builder, BridgedBasicBlock destBlock,
458458
BridgedValueArray arguments);
459+
BridgedInstruction SILBuilder_createUnreachable(BridgedBuilder builder);
459460

460461
SWIFT_END_NULLABILITY_ANNOTATIONS
461462

lib/SIL/Utils/SILBridging.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,3 +1184,9 @@ BridgedInstruction SILBuilder_createBranch(
11841184
castToBasicBlock(destBlock),
11851185
getSILValues(arguments, argValues))};
11861186
}
1187+
1188+
BridgedInstruction SILBuilder_createUnreachable(BridgedBuilder b) {
1189+
SILBuilder builder(castToInst(b.insertBefore), castToBasicBlock(b.insertAtEnd),
1190+
b.loc.getScope());
1191+
return {builder.createUnreachable(RegularLocation(b.loc.getLocation()))};
1192+
}

0 commit comments

Comments
 (0)