llvm/compiler-rt/clang의 3.1 릴리스를 구축했으며 -fcatch-undefined-behavior가 실제로 어떤 작업을하는지 확인하려고합니다. 지금까지 행운이 없습니다. 예 : 나는 컴파일하고clang의 -fcatch-undefined-behavior가 광고 된대로 작동하지 않음
$ /usr/local/bin/clang -fcatch-undefined-behavior undef_test.c && ./a.out
0
난 정말 간단한 뭔가를 놓치고와
#include <stdio.h>
#include <stdlib.h>
int main() {
int* x = malloc(sizeof(int) * 10);
printf("%d\n", x[20]);
return 0;
}
를 실행?
예, catch/all/undefined 동작이 매우 어렵고 컴파일러가 구현하기가 너무 어렵다는 사실을 알지 못합니다. – PlasmaHH
-faddress-sanitizer는 valgrind와 같이이를 포착해야합니다. –
고마워요, Ambroz. 이것은 가장 도움이되었습니다. – Oleg2718281828