|
@@ -103,8 +103,8 @@ Clang 对于未定义行为中那些简单和显然的情况实现了一些警
|
|
|
# Clang 处理未定义行为的方法
|
|
|
|
|
|
鉴于现在我们处理未定义行为的糟糕状态,你可能希望知道 Clang 和 LLVM
|
|
|
-改进现状的尝试。我之前已经提到了一些:[Clang 静态分析器][7],
|
|
|
-[Klee 项目][8],以及 `-fcatch-undefined-behavior`
|
|
|
+改进现状的尝试。我之前已经提到了一些:[Clang 静态分析器][+1],
|
|
|
+[Klee 项目][+2],以及 `-fcatch-undefined-behavior`
|
|
|
选项都是跟踪特定类型 bug 的有用工具。问题是它们并不像编译器一样被广泛使用,
|
|
|
所以在编译器中直接进行的改进比其他工具中的改进高到不知哪里去了。
|
|
|
请注意编译器永远受到缺乏动态信息和不能消耗太多编译时间的限制。
|
|
@@ -256,3 +256,5 @@ C 早就不是一个可移植 “汇编器” 了,有时它和汇编器的区
|
|
|
[10]:http://llvm.org/docs/LangRef.html#trapvalues
|
|
|
[10a]:https://releases.llvm.org/3.0/docs/LangRef.html#trapvalues
|
|
|
[11]:http://nondot.org/sabre/
|
|
|
+[+1]:http://clang-analyzer.llvm.org/
|
|
|
+[+2]:http://klee.llvm.org/
|