diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-05-29 10:15:29 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-05-29 10:15:29 -0700 |
commit | b4599a48694b78a5db144f17c2ab281a6d9f17d1 (patch) | |
tree | 44196cf7204aade8acfce11f76551be0831e3923 | |
parent | 8f429810c03f1d869936776b174332d55ff88bde (diff) |
Added Ubsan build target, to check for undefined behavior.
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | src/CMakeLists.txt | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a6f304..a4ebe92 100644 --- 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) @@ -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 index ba3e18e..f27186e 100644 --- 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 |