diff --git a/SwiftCompilerSources/Sources/SIL/BasicBlock.swift b/SwiftCompilerSources/Sources/SIL/BasicBlock.swift index d4777535e511f..d727298b4e3cd 100644 --- a/SwiftCompilerSources/Sources/SIL/BasicBlock.swift +++ b/SwiftCompilerSources/Sources/SIL/BasicBlock.swift @@ -25,7 +25,7 @@ final public class BasicBlock : ListNode, CustomStringConvertible, HasShortDescr public var function: Function { SILBasicBlock_getFunction(bridged).function } public var description: String { - String(_cxxString: SILBasicBlock_debugDescription(bridged)) + SILBasicBlock_debugDescription(bridged).takeString() } public var shortDescription: String { name } diff --git a/include/swift/SIL/SILBridging.h b/include/swift/SIL/SILBridging.h index cb45c70e6e13b..60df87c1d8c94 100644 --- a/include/swift/SIL/SILBridging.h +++ b/include/swift/SIL/SILBridging.h @@ -223,7 +223,7 @@ std::string SILGlobalVariable_debugDescription(BridgedGlobalVar global); OptionalBridgedBasicBlock SILBasicBlock_next(BridgedBasicBlock block); OptionalBridgedBasicBlock SILBasicBlock_previous(BridgedBasicBlock block); BridgedFunction SILBasicBlock_getFunction(BridgedBasicBlock block); -std::string SILBasicBlock_debugDescription(BridgedBasicBlock block); +BridgedStringRef SILBasicBlock_debugDescription(BridgedBasicBlock block); OptionalBridgedInstruction SILBasicBlock_firstInst(BridgedBasicBlock block); OptionalBridgedInstruction SILBasicBlock_lastInst(BridgedBasicBlock block); SwiftInt SILBasicBlock_getNumArguments(BridgedBasicBlock block); diff --git a/lib/SIL/Utils/SILBridging.cpp b/lib/SIL/Utils/SILBridging.cpp index cfca1ce49e24c..eeb4dd7bece3b 100644 --- a/lib/SIL/Utils/SILBridging.cpp +++ b/lib/SIL/Utils/SILBridging.cpp @@ -251,12 +251,11 @@ BridgedFunction SILBasicBlock_getFunction(BridgedBasicBlock block) { return {castToBasicBlock(block)->getParent()}; } -std::string SILBasicBlock_debugDescription(BridgedBasicBlock block) { +BridgedStringRef SILBasicBlock_debugDescription(BridgedBasicBlock block) { std::string str; llvm::raw_string_ostream os(str); castToBasicBlock(block)->print(os); - str.pop_back(); // Remove trailing newline. - return str; + return getCopiedBridgedStringRef(str, /*removeTrailingNewline*/ true); } OptionalBridgedInstruction SILBasicBlock_firstInst(BridgedBasicBlock block) { diff --git a/test/SILOptimizer/addr_escape_info.sil b/test/SILOptimizer/addr_escape_info.sil index 0f6c069cec95a..d3478834af8fe 100644 --- a/test/SILOptimizer/addr_escape_info.sil +++ b/test/SILOptimizer/addr_escape_info.sil @@ -2,9 +2,6 @@ // REQUIRES: swift_in_compiler -// rdar92963081 -// UNSUPPORTED: OS=linux-gnu - sil_stage canonical import Builtin diff --git a/test/SILOptimizer/escape_info.sil b/test/SILOptimizer/escape_info.sil index c4ab8918e2a1c..e2d9d19e94d03 100644 --- a/test/SILOptimizer/escape_info.sil +++ b/test/SILOptimizer/escape_info.sil @@ -2,9 +2,6 @@ // REQUIRES: swift_in_compiler -// rdar92963081 -// UNSUPPORTED: OS=linux-gnu - sil_stage canonical import Builtin diff --git a/test/SILOptimizer/ranges.sil b/test/SILOptimizer/ranges.sil index a0c74989e45b9..6b97c3bed5ec7 100644 --- a/test/SILOptimizer/ranges.sil +++ b/test/SILOptimizer/ranges.sil @@ -2,9 +2,6 @@ // REQUIRES: swift_in_compiler -// rdar92963081 -// UNSUPPORTED: OS=linux-gnu - sil_stage canonical // CHECK-LABEL: Instruction range in basic_test: