clang lacks undefined behavior sanitizer (ubsan) on FreeBSD?

Markiyan Kushnir markiyan.kushnir at gmail.com
Fri Dec 27 11:52:31 UTC 2013


Trying to make benefit out of -fsanitize=undefined and failing on
11-CURRENT r259742. A minimal test case:

13:45:tmp$ cat ttt.c
#include <stdio.h>

int
main(void)
{
    int i, j = 0xffffffff;

    for (i = 0; i < 2; ++i) {
        j <<= 1;
        printf("j=%x\n", j);
    }
    return 0;
}

13:45:tmp$ clang -Qunused-arguments -fcolor-diagnostics -g -O0
-fsanitize=undefined -Wall -Wextra -Werror -std=c99  ttt.c
/tmp/ttt-RJPqDj.o: In function `main':
/tmp/ttt.c:9: undefined reference to `__ubsan_handle_shift_out_of_bounds'
/tmp/ttt.c:8: undefined reference to `__ubsan_handle_add_overflow'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The ports version (both clang33 and clang34) neither seems to take
care of it, as I could see in
llvm.src/tools/clang/runtime/compiler-rt/Makefile

Am I missing anything?

--
Markiyan.


More information about the freebsd-hackers mailing list