Missing tests for sanitizers in LLVM 10.0.0 (and potentially more versions)

I’m trying to run the ASan tests with make check-asan as described in the docs here: AddressSanitizer — Clang 16.0.0git documentation

I’ve built LLVM from a git checkout llvmorg-10.0.0 with cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release

The check-asan and check-sanitizers make targets do not exist when built with this configuration – this seems like a bug?

These targets are present when you’re building the sanitizer runtime itself (see compiler-rt/test/asan/CMakeLists.txt). Your cmake invocation will only build LLVM, try to pass -DLLVM_ENABLE_PROJECTS=compiler-rt to cmake to enable building the runtime.

Hi Mehdi, thanks for the response! I was assuming that the default build when you don’t specify specific components would include the compiler runtime (I guess I thought that since it seems to include clang). That’s working now though, thank you.

Just for posterity in case anyone ends up here with the same question, if you enable specific subprojects with -DLLVM_ENABLE_PROJECTS it will override the defaults for that CMake parameter, so to avoid errors about clang components being missing it’s necessary to say -DLLVM_ENABLE_PROJECTS=compiler-rt;clang

Clang isn’t enabled by default either I believe: only LLVM alone is the default.