aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper/sanitizer_flags.go
diff options
context:
space:
mode:
authorTobias Bosch <tbosch@google.com>2019-07-19 02:56:31 -0700
committerTobias Bosch <tbosch@google.com>2019-07-22 08:06:23 +0000
commite23905c00b38f3a2858018040d73ec402e97c15f (patch)
tree6f022842217f1ba66f4427f06eacbe9707c8ccff /compiler_wrapper/sanitizer_flags.go
parentcfa8c2459f3957b2557dfe67d830550f12c14364 (diff)
downloadtoolchain-utils-e23905c00b38f3a2858018040d73ec402e97c15f.tar.gz
Sync with recent changes to old wrapper.
Old wrapper changes: https://chromium.git.corp.google.com/chromiumos/overlays/chromiumos-overlay/+/bebf19ee4322c26d7cb548c8f4419dfe1c6e3c11 https://chromium.git.corp.google.com/chromiumos/overlays/chromiumos-overlay/+/cc6e225d3894f99b320584b2f41ff6a68f76d6a7 BUG=chromium:773875 TEST=unit test Change-Id: I927bcb6082d1b67ca9efde0001e43e0a0a36c3b4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1710403 Tested-by: Tobias Bosch <tbosch@google.com> Reviewed-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'compiler_wrapper/sanitizer_flags.go')
-rw-r--r--compiler_wrapper/sanitizer_flags.go20
1 files changed, 15 insertions, 5 deletions
diff --git a/compiler_wrapper/sanitizer_flags.go b/compiler_wrapper/sanitizer_flags.go
index 3ec62b67..32f2cb78 100644
--- a/compiler_wrapper/sanitizer_flags.go
+++ b/compiler_wrapper/sanitizer_flags.go
@@ -9,18 +9,21 @@ import (
)
func processSanitizerFlags(builder *commandBuilder) {
- filterSanitizerFlags := false
+ hasSanitizeFlags := false
+ hasSanitizeFuzzerFlags := false
for _, arg := range builder.args {
// TODO: This should probably be -fsanitize= to not match on
// e.g. -fsanitize-blacklist
if arg.fromUser && strings.HasPrefix(arg.value, "-fsanitize") {
- filterSanitizerFlags = true
- break
+ hasSanitizeFlags = true
+ if strings.Contains(arg.value, "fuzzer") {
+ hasSanitizeFuzzerFlags = true
+ }
}
}
- if filterSanitizerFlags {
+ if hasSanitizeFlags {
// Flags not supported by sanitizers (ASan etc.)
- var unsupportedSanitizerFlags = map[string]bool{
+ unsupportedSanitizerFlags := map[string]bool{
"-D_FORTIFY_SOURCE=1": true,
"-D_FORTIFY_SOURCE=2": true,
"-Wl,--no-undefined": true,
@@ -36,5 +39,12 @@ func processSanitizerFlags(builder *commandBuilder) {
}
return arg.value
})
+ if hasSanitizeFuzzerFlags && builder.target.compilerType == clangType {
+ fuzzerFlagsToAdd := []string{
+ // TODO: This flag should be removed once fuzzer works with new pass manager
+ "-fno-experimental-new-pass-manager",
+ }
+ builder.addPreUserArgs(fuzzerFlagsToAdd...)
+ }
}
}