【发布时间】:2015-06-30 00:44:16
【问题描述】:
以下代码是有效的 Swift 代码,并且在禁用优化时可以正确编译。
protocol Foo {
var bar: String { get set }
}
class BaseFoo: Foo {
var bar: String = "hello"
}
class ChildFoo: BaseFoo {
private var _bar: String = "world"
override var bar: String {
get {
return _bar
}
set {
_bar = newValue
}
}
}
启用 Swift 优化(Fastest -O)后,我只会从 xcode 收到一条非常模糊的错误消息:
命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc 失败,退出代码为 1
所以我尝试运行 Xcode 说失败的命令,我能够找到更有趣的错误:
PHINode 应该为其父基本块的每个前任都有一个条目!
%11 = phi i64 [ %43, %33 ], [ 0, %29 ], !dbg !747
LLVM 错误:发现损坏的函数,编译中止!
【问题讨论】: