summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2015-04-17 19:30:20 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-17 19:30:20 +0000
commitc08f725cd827f5acf85c539ad1092f1a65d2040b (patch)
tree5ac5100f6262a886ece5a844b28c76e80bc9c953
parentf52cf64f6c1b983d1e79b004779dfa8d810ab304 (diff)
parent757417f9438a3a83d9fa1f7b10d74436fd6f61e4 (diff)
downloadbuild-c08f725cd827f5acf85c539ad1092f1a65d2040b.zip
build-c08f725cd827f5acf85c539ad1092f1a65d2040b.tar.gz
build-c08f725cd827f5acf85c539ad1092f1a65d2040b.tar.bz2
am 757417f9: am f1b7c073: am 6ed5bea4: Merge "Make use of sanitizers without clang an error."
* commit '757417f9438a3a83d9fa1f7b10d74436fd6f61e4': Make use of sanitizers without clang an error.
-rw-r--r--core/config_sanitizers.mk15
1 files changed, 11 insertions, 4 deletions
diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk
index e7a516e..99dc55e 100644
--- a/core/config_sanitizers.mk
+++ b/core/config_sanitizers.mk
@@ -12,8 +12,10 @@ ifeq ($(my_sanitize_host),true)
my_sanitize_host := address
endif
-# `LOCAL_CLANG := false` disables SANITIZE_HOST.
-ifeq ($(my_clang),false)
+# SANITIZE_HOST is only in effect if the module is already using clang (host
+# modules that haven't set `LOCAL_CLANG := false` and device modules that have
+# set `LOCAL_CLANG := true`.
+ifneq ($(my_clang),true)
my_sanitize_host :=
endif
@@ -43,6 +45,13 @@ ifeq ($(my_sanitize),never)
my_sanitize :=
endif
+# Sanitizers can only be used with clang.
+ifneq ($(my_clang),true)
+ ifneq ($(my_sanitize),)
+ $(error $(LOCAL_PATH): $(LOCAL_MODULE): Use of sanitizers requires LOCAL_CLANG := true)
+ endif
+endif
+
unknown_sanitizers := $(filter-out address, \
$(filter-out undefined,$(my_sanitize)))
@@ -51,8 +60,6 @@ ifneq ($(unknown_sanitizers),)
endif
ifneq ($(my_sanitize),)
- my_clang := true
-
fsanitize_arg := $(subst $(space),$(comma),$(my_sanitize)),
my_cflags += -fsanitize=$(fsanitize_arg)