Merge "Replace LLVM_ENABLE_ASSERTION with FORCE_BUILD_LLVM_DISABLE_NDEBUG, and add FORCE_BUILD_LLVM_DEBUG."
diff --git a/Android.mk b/Android.mk
index 4120a7c..4faf6c5 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,6 +1,17 @@
 LOCAL_PATH := $(call my-dir)
 CLANG_ROOT_PATH := $(LOCAL_PATH)
-CLANG_ENABLE_ASSERTION := false
+
+FORCE_BUILD_LLVM_DISABLE_NDEBUG ?= false
+# Legality check: FORCE_BUILD_LLVM_DISABLE_NDEBUG should consist of one word -- either "true" or "false".
+ifneq "$(words $(FORCE_BUILD_LLVM_DISABLE_NDEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DISABLE_NDEBUG)))" "10"
+  $(error FORCE_BUILD_LLVM_DISABLE_NDEBUG may only be true, false, or unset)
+endif
+
+FORCE_BUILD_LLVM_DEBUG ?= false
+# Legality check: FORCE_BUILD_LLVM_DEBUG should consist of one word -- either "true" or "false".
+ifneq "$(words $(FORCE_BUILD_LLVM_DEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DEBUG)))" "10"
+  $(error FORCE_BUILD_LLVM_DEBUG may only be true, false, or unset)
+endif
 
 include $(CLEAR_VARS)
 
diff --git a/clang-device-build.mk b/clang-device-build.mk
index 28c7916..cc490e9 100644
--- a/clang-device-build.mk
+++ b/clang-device-build.mk
@@ -8,7 +8,7 @@
 	-Wno-sign-promo \
 	$(LOCAL_CPPFLAGS)
 
-ifeq ($(CLANG_ENABLE_ASSERTION),true)
+ifeq ($(FORCE_BUILD_LLVM_DISABLE_NDEBUG),true)
 LOCAL_CFLAGS :=	\
 	$(LOCAL_CFLAGS) \
 	-D_DEBUG	\
diff --git a/clang-host-build.mk b/clang-host-build.mk
index 3594cc4..9cd2bf4 100644
--- a/clang-host-build.mk
+++ b/clang-host-build.mk
@@ -8,13 +8,19 @@
 	-Wno-sign-promo \
 	$(LOCAL_CPPFLAGS)
 
-ifeq ($(CLANG_ENABLE_ASSERTION),true)
+ifeq ($(FORCE_BUILD_LLVM_DISABLE_NDEBUG),true)
 LOCAL_CFLAGS :=	\
 	$(LOCAL_CFLAGS) \
 	-D_DEBUG	\
 	-UNDEBUG
 endif
 
+ifeq ($(FORCE_BUILD_LLVM_DEBUG),true)
+LOCAL_CFLAGS := \
+	$(LOCAL_CFLAGS) \
+	-O0 -g
+endif
+
 # Make sure bionic is first so we can include system headers.
 LOCAL_C_INCLUDES :=	\
 	$(CLANG_ROOT_PATH)/include	\