Added Makefile option to build with address sanitizer

This commit is contained in:
Bartek Kryza 2024-07-12 16:58:13 +02:00
parent c0f5d5f64a
commit 3b10885155
No known key found for this signature in database
GPG Key ID: 241B25F44E85B4D7
3 changed files with 21 additions and 0 deletions

1
.sanitize-blacklist Normal file
View File

@ -0,0 +1 @@
fun:*SmallVector*

View File

@ -70,6 +70,23 @@ if(CODE_COVERAGE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov --coverage")
endif(CODE_COVERAGE)
#
# Setup Address Sanitizer
#
option(ADDRESS_SANITIZER "" OFF)
if(ADDRESS_SANITIZER)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} \
-fno-omit-frame-pointer \
-fsanitize=address \
-fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/.sanitize-blacklist")
set(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} \
-fno-omit-frame-pointer \
-fsanitize=address \
-fsanitize-blacklist=${CMAKE_CURRENT_SOURCE_DIR}/.sanitize-blacklist")
endif(ADDRESS_SANITIZER)
#
# Setup LLVM
#

View File

@ -38,6 +38,7 @@ CMAKE_CXX_FLAGS ?=
CMAKE_EXE_LINKER_FLAGS ?=
CMAKE_GENERATOR ?= Unix Makefiles
CODE_COVERAGE ?= OFF
ADDRESS_SANITIZER ?= OFF
ENABLE_CXX_MODULES_TEST_CASES ?= OFF
ENABLE_CUDA_TEST_CASES ?= OFF
@ -69,6 +70,7 @@ debug/CMakeLists.txt:
-DENABLE_CUDA_TEST_CASES=$(ENABLE_CUDA_TEST_CASES) \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) \
-DCODE_COVERAGE=$(CODE_COVERAGE) \
-DADDRESS_SANITIZER=$(ADDRESS_SANITIZER) \
-DCLANG_UML_ENABLE_BACKTRACE=$(CLANG_UML_ENABLE_BACKTRACE)
release/CMakeLists.txt:
@ -84,6 +86,7 @@ release/CMakeLists.txt:
-DLLVM_CONFIG_PATH=${LLVM_CONFIG_PATH} \
-DLINK_LLVM_SHARED=${LLVM_SHARED} \
-DCMAKE_PREFIX=${CMAKE_PREFIX} \
-DADDRESS_SANITIZER=$(ADDRESS_SANITIZER) \
-DENABLE_CUDA_TEST_CASES=$(ENABLE_CUDA_TEST_CASES) \
-DENABLE_CXX_MODULES_TEST_CASES=$(ENABLE_CXX_MODULES_TEST_CASES) \
-DCLANG_UML_ENABLE_BACKTRACE=$(CLANG_UML_ENABLE_BACKTRACE)