diff options
author | Tobias Bosch <tbosch@google.com> | 2019-07-19 02:56:31 -0700 |
---|---|---|
committer | Tobias Bosch <tbosch@google.com> | 2019-07-22 08:06:23 +0000 |
commit | e23905c00b38f3a2858018040d73ec402e97c15f (patch) | |
tree | 6f022842217f1ba66f4427f06eacbe9707c8ccff /compiler_wrapper/sanitizer_flags.go | |
parent | cfa8c2459f3957b2557dfe67d830550f12c14364 (diff) | |
download | toolchain-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.go | 20 |
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...) + } } } |