clang是否支持边界检查?

The*_*ask 10 clang clang++

如果是这样,我该如何开启?我自己在文档中找不到这个,谷歌没有提供有用的结果

例如,

int arr[2];
arr[5] = n;  // runtime error
Run Code Online (Sandbox Code Playgroud)

Oak*_*Oak 11

是.启用此功能的命令行是-fsanitize=address.

有关此内容的更多信息,包括预期的减速以及可能出现链接错误的原因,请参阅Clang的AddressSanitizer文档.

请记住,地址清理程序不仅限于检查堆栈对象; 如果这是你想要的唯一功能,我认为你可以通过额外的传递来限制它-mllvm -asan-stack.有关详细信息,请参阅地址清洁标志的此页面.