am 63082eab: am b6874440: Merge "Add support for a partial ubsan build."

* commit '63082eab1f1e18b06882fbbaf08ee64c3f68193a':
  Add support for a partial ubsan build.
This commit is contained in:
Dan Albert 2015-04-17 19:53:03 +00:00 committed by Android Git Automerger
commit 07607526b8
2 changed files with 34 additions and 4 deletions

View File

@ -98,6 +98,32 @@ CLANG_CONFIG_TARGET_EXTRA_CFLAGS := -nostdlibinc
CLANG_CONFIG_TARGET_EXTRA_CPPFLAGS := -nostdlibinc
CLANG_CONFIG_TARGET_EXTRA_LDFLAGS :=
CLANG_DEFAULT_UB_CHECKS := \
bool \
integer-divide-by-zero \
return \
returns-nonnull-attribute \
shift-exponent \
unreachable \
vla-bound \
# TODO(danalbert): The following checks currently have compiler performance
# issues.
# CLANG_DEFAULT_UB_CHECKS += alignment
# CLANG_DEFAULT_UB_CHECKS += bounds
# CLANG_DEFAULT_UB_CHECKS += enum
# CLANG_DEFAULT_UB_CHECKS += float-cast-overflow
# CLANG_DEFAULT_UB_CHECKS += float-divide-by-zero
# CLANG_DEFAULT_UB_CHECKS += nonnull-attribute
# CLANG_DEFAULT_UB_CHECKS += null
# CLANG_DEFAULT_UB_CHECKS += shift-base
# CLANG_DEFAULT_UB_CHECKS += signed-integer-overflow
# TODO(danalbert): Fix UB in libc++'s __tree so we can turn this on.
# https://llvm.org/PR19302
# http://reviews.llvm.org/D6974
# CLANG_DEFAULT_UB_CHECKS += object-size
# HOST config
clang_2nd_arch_prefix :=
include $(BUILD_SYSTEM)/clang/HOST_$(HOST_ARCH).mk

View File

@ -50,11 +50,15 @@ ifneq ($(my_clang),true)
endif
endif
unknown_sanitizers := $(filter-out address, \
$(filter-out undefined,$(my_sanitize)))
ifneq ($(filter default-ub,$(my_sanitize)),)
my_sanitize := $(CLANG_DEFAULT_UB_CHECKS)
my_ldlibs += -ldl
ifneq ($(unknown_sanitizers),)
$(error Unknown sanitizers: $(unknown_sanitizers))
ifdef LOCAL_IS_HOST_MODULE
my_cflags += -fno-sanitize-recover=all
else
my_cflags += -fsanitize-undefined-trap-on-error
endif
endif
ifneq ($(my_sanitize),)