Addedd clang sanitizers
authorClifford Wolf <clifford@clifford.at>
Sun, 31 Jan 2016 15:08:21 +0000 (16:08 +0100)
committerClifford Wolf <clifford@clifford.at>
Sun, 31 Jan 2016 15:08:21 +0000 (16:08 +0100)
Makefile

index 3dff837fbc3c5233ec3b9eee97614f93b8f3849c..c20d80249c923949ca39a3297bbaf78749b05ade 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,14 @@ ENABLE_LIBYOSYS := 0
 ENABLE_GPROF := 0
 ENABLE_NDEBUG := 0
 
+# clang sanitizers
+SANITIZER =
+# SANITIZER = address
+# SANITIZER = memory
+# SANITIZER = undefined
+# SANITIZER = cfi
+
+
 PREFIX ?= /usr/local
 INSTALL_SUDO :=
 
@@ -88,6 +96,19 @@ ifeq ($(CONFIG),clang)
 CXX = clang
 CXXFLAGS += -std=c++11 -Os
 
+ifneq ($(SANITIZER),)
+$(info [Clang Sanitizer] $(SANITIZER))
+CXXFLAGS += -g -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=$(SANITIZER)
+LDFLAGS += -g -fsanitize=$(SANITIZER)
+ifeq ($(SANITIZER),address)
+ENABLE_COVER := 0
+endif
+ifeq ($(SANITIZER),cfi)
+CXXFLAGS += -flto
+LDFLAGS += -flto
+endif
+endif
+
 else ifeq ($(CONFIG),gcc)
 CXX = gcc
 CXXFLAGS += -std=gnu++0x -Os