- Commit
- b4599a48694b78a5db144f17c2ab281a6d9f17d1
- Parent
- 8f429810c03f1d869936776b174332d55ff88bde
- Author
- John MacFarlane <jgm@berkeley.edu>
- Date
Added Ubsan build target, to check for undefined behavior.
My personal build of CMark ✏️
Added Ubsan build target, to check for undefined behavior.
3 files changed, 13 insertions, 2 deletions
Status | File Name | N° Changes | Insertions | Deletions |
Modified | CMakeLists.txt | 2 | 1 | 1 |
Modified | Makefile | 8 | 7 | 1 |
Modified | src/CMakeLists.txt | 5 | 5 | 0 |
diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -21,5 +21,5 @@ add_subdirectory(test testdir) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING - "Choose the type of build, options are: Debug Profile Release." FORCE) + "Choose the type of build, options are: Debug Profile Release Asan Ubsan." FORCE) endif(NOT CMAKE_BUILD_TYPE)
diff --git a/Makefile b/Makefile @@ -19,7 +19,7 @@ VERSION?=$(SPECVERSION) RELEASE?=CommonMark-$(VERSION) INSTALL_PREFIX?=/usr/local -.PHONY: all cmake_build spec leakcheck clean fuzztest dingus upload test update-site upload-site debug asan mingw archive bench astyle update-spec afl +.PHONY: all cmake_build spec leakcheck clean fuzztest dingus upload test update-site upload-site debug ubsan asan mingw archive bench astyle update-spec afl all: cmake_build man/man3/cmark.3 @@ -47,6 +47,12 @@ debug: cmake .. -DCMAKE_BUILD_TYPE=Debug; \ make +ubsan: + mkdir -p $(BUILDDIR); \ + cd $(BUILDDIR); \ + cmake .. -DCMAKE_BUILD_TYPE=Ubsan; \ + make + asan: mkdir -p $(BUILDDIR); \ cd $(BUILDDIR); \
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt @@ -164,3 +164,7 @@ endif() if($ENV{TIMER}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DTIMER=1") endif($ENV{TIMER}) + +if(CMAKE_BUILD_TYPE STREQUAL "Ubsan") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined") +endif()+ \ No newline at end of file