From aee334b648787f881687e30ed9c4e1a472abd499 Mon Sep 17 00:00:00 2001 From: Anjan Roy Date: Sun, 17 Dec 2023 12:58:18 +0400 Subject: [PATCH] add option for building tests with *undefined-behaviour-sanitizer* enabled, while removing *memory-sanitizer* Signed-off-by: Anjan Roy --- Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index a0aa3b0..3088594 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,8 @@ CXX_FLAGS = -std=c++20 WARN_FLAGS = -Wall -Wextra -pedantic OPT_FLAGS = -O3 -march=native LINK_FLAGS = -flto -ASAN_FLAGS = -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -MSAN_FLAGS = -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=memory +ASAN_FLAGS = -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address # From https://clang.llvm.org/docs/AddressSanitizer.html +UBSAN_FLAGS = -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=undefined -fsanitize=nullability # From https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html SHA3_INC_DIR = ./sha3/include SUBTLE_INC_DIR = ./subtle/include @@ -15,17 +15,17 @@ SRC_DIR = include KYBER_SOURCES := $(wildcard $(SRC_DIR)/*.hpp) BUILD_DIR = build ASAN_BUILD_DIR = $(BUILD_DIR)/asan -MSAN_BUILD_DIR = $(BUILD_DIR)/msan +UBSAN_BUILD_DIR = $(BUILD_DIR)/ubsan TEST_DIR = tests TEST_SOURCES := $(wildcard $(TEST_DIR)/*.cpp) TEST_OBJECTS := $(addprefix $(BUILD_DIR)/, $(notdir $(patsubst %.cpp,%.o,$(TEST_SOURCES)))) ASAN_TEST_OBJECTS := $(addprefix $(ASAN_BUILD_DIR)/, $(notdir $(patsubst %.cpp,%.o,$(TEST_SOURCES)))) -MSAN_TEST_OBJECTS := $(addprefix $(MSAN_BUILD_DIR)/, $(notdir $(patsubst %.cpp,%.o,$(TEST_SOURCES)))) +UBSAN_TEST_OBJECTS := $(addprefix $(UBSAN_BUILD_DIR)/, $(notdir $(patsubst %.cpp,%.o,$(TEST_SOURCES)))) TEST_LINK_FLAGS = -lgtest -lgtest_main TEST_BINARY = $(BUILD_DIR)/test.out ASAN_TEST_BINARY = $(ASAN_BUILD_DIR)/test.out -MSAN_TEST_BINARY = $(MSAN_BUILD_DIR)/test.out +UBSAN_TEST_BINARY = $(UBSAN_BUILD_DIR)/test.out BENCHMARK_DIR = benchmarks BENCHMARK_SOURCES := $(wildcard $(BENCHMARK_DIR)/*.cpp) @@ -40,7 +40,7 @@ all: test $(ASAN_BUILD_DIR): mkdir -p $@ -$(MSAN_BUILD_DIR): +$(UBSAN_BUILD_DIR): mkdir -p $@ $(BUILD_DIR): @@ -57,8 +57,8 @@ $(BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DI $(ASAN_BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(ASAN_BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR) $(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(ASAN_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@ -$(MSAN_BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(MSAN_BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR) - $(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(MSAN_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@ +$(UBSAN_BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(UBSAN_BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR) + $(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(UBSAN_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@ $(TEST_BINARY): $(TEST_OBJECTS) $(CXX) $(OPT_FLAGS) $(LINK_FLAGS) $^ $(TEST_LINK_FLAGS) -o $@ @@ -66,8 +66,8 @@ $(TEST_BINARY): $(TEST_OBJECTS) $(ASAN_TEST_BINARY): $(ASAN_TEST_OBJECTS) $(CXX) $(ASAN_FLAGS) $^ $(TEST_LINK_FLAGS) -o $@ -$(MSAN_TEST_BINARY): $(MSAN_TEST_OBJECTS) - $(CXX) $(MSAN_FLAGS) $^ $(TEST_LINK_FLAGS) -o $@ +$(UBSAN_TEST_BINARY): $(UBSAN_TEST_OBJECTS) + $(CXX) $(UBSAN_FLAGS) $^ $(TEST_LINK_FLAGS) -o $@ test: $(TEST_BINARY) ./$< --gtest_shuffle --gtest_random_seed=0 @@ -75,7 +75,7 @@ test: $(TEST_BINARY) asan_test: $(ASAN_TEST_BINARY) ./$< --gtest_shuffle --gtest_random_seed=0 -msan_test: $(MSAN_TEST_BINARY) +ubsan_test: $(UBSAN_TEST_BINARY) ./$< --gtest_shuffle --gtest_random_seed=0 $(BUILD_DIR)/%.o: $(BENCHMARK_DIR)/%.cpp $(BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR)