Merge changes from topic 'genpath_yacc'

* changes:
  Add yacc generated headers to the include path
  Add subdir to GenPath
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()
+			}
 		}
 	}