diff --git a/android/config.go b/android/config.go
index 74cb56e..3d494af 100644
--- a/android/config.go
+++ b/android/config.go
@@ -357,17 +357,15 @@
 }
 
 func (c *config) SanitizeHost() []string {
-	if c.ProductVariables.SanitizeHost == nil {
-		return nil
-	}
-	return append([]string(nil), *c.ProductVariables.SanitizeHost...)
+	return append([]string(nil), c.ProductVariables.SanitizeHost...)
 }
 
 func (c *config) SanitizeDevice() []string {
-	if c.ProductVariables.SanitizeDevice == nil {
-		return nil
-	}
-	return append([]string(nil), *c.ProductVariables.SanitizeDevice...)
+	return append([]string(nil), c.ProductVariables.SanitizeDevice...)
+}
+
+func (c *config) SanitizeDeviceArch() []string {
+	return append([]string(nil), c.ProductVariables.SanitizeDeviceArch...)
 }
 
 func (c *config) Android64() bool {
diff --git a/android/variable.go b/android/variable.go
index 4aff26e..5544c12 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -118,8 +118,9 @@
 	DevicePrefer32BitExecutables *bool `json:",omitempty"`
 	HostPrefer32BitExecutables   *bool `json:",omitempty"`
 
-	SanitizeHost   *[]string `json:",omitempty"`
-	SanitizeDevice *[]string `json:",omitempty"`
+	SanitizeHost       []string `json:",omitempty"`
+	SanitizeDevice     []string `json:",omitempty"`
+	SanitizeDeviceArch []string `json:",omitempty"`
 }
 
 func boolPtr(v bool) *bool {
diff --git a/cc/sanitize.go b/cc/sanitize.go
index 8d162e7..447c5b4 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -119,7 +119,10 @@
 		if ctx.Host() {
 			globalSanitizers = ctx.AConfig().SanitizeHost()
 		} else {
-			globalSanitizers = ctx.AConfig().SanitizeDevice()
+			arches := ctx.AConfig().SanitizeDeviceArch()
+			if len(arches) == 0 || inList(ctx.Arch().ArchType.Name, arches) {
+				globalSanitizers = ctx.AConfig().SanitizeDevice()
+			}
 		}
 	}
 
