Allow integer_overflow sanitizer path exclusion.

Add support for excluding paths from having integer_overflow applied to
them when using SANITIZE_TARGET=integer_overflow via an
INTEGER_OVERFLOW_EXCLUDE_PATHS make variable. This covers the soong side
of the change.

Bug: 30969751
Test: Build with SANITIZE_TARGET=integer_overflow
SANITIZE_TARGET_DIAG=integer_overflow
INTEGER_OVERFLOW_EXCLUDE_PATHS=<path> and confirmed this was no
longer being applied to binaries in that path.

Change-Id: I298b772f5425da28dff1cf007825be19558db3a8
This commit is contained in:
Ivan Lozano
2017-07-13 14:46:05 -07:00
parent da4a7257b5
commit 5f59553bca
4 changed files with 25 additions and 11 deletions

View File

@@ -530,20 +530,21 @@ func (c *deviceConfig) NativeCoverageEnabled() bool {
func (c *deviceConfig) CoverageEnabledForPath(path string) bool {
coverage := false
if c.config.ProductVariables.CoveragePaths != nil {
for _, prefix := range *c.config.ProductVariables.CoveragePaths {
if strings.HasPrefix(path, prefix) {
coverage = true
break
}
if prefixInList(path, *c.config.ProductVariables.CoveragePaths) {
coverage = true
}
}
if coverage && c.config.ProductVariables.CoverageExcludePaths != nil {
for _, prefix := range *c.config.ProductVariables.CoverageExcludePaths {
if strings.HasPrefix(path, prefix) {
coverage = false
break
}
if prefixInList(path, *c.config.ProductVariables.CoverageExcludePaths) {
coverage = false
}
}
return coverage
}
func (c *config) IntegerOverflowDisabledForPath(path string) bool {
if c.ProductVariables.IntegerOverflowExcludePaths == nil {
return false
}
return prefixInList(path, *c.ProductVariables.IntegerOverflowExcludePaths)
}