我在 Ubuntu 14.04 上使用带有 Clang 3.7.0 的 Memory Sanitizer。以下代码可以完美运行:
#include <cstdio>
int main() {
double ans;
printf("Hello World: %f\n", ans);
return 0;
}
编译时
clang++ -g -O1 -fsanitize=memory -fsanitize-memory-track-origins=2 -fomit-frame-pointer sanitize.cpp -o sanitize
我期待一个错误。Memory Sanitizer 没有发现 ans 未初始化的事实吗?
谢谢你的帮助。