aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoj Gupta <manojgupta@google.com>2021-12-06 11:46:42 -0800
committerCommit Bot <commit-bot@chromium.org>2021-12-14 16:53:07 +0000
commited2aa295b315c2d2570e942e6a056c45028f39b4 (patch)
tree58589e5c4f2bee3dd20c2c1652a7b393bc21bdd2
parente8d03f7ea49a9ee46d672ed9ad3582ab591fd9f1 (diff)
downloadtoolchain-utils-ed2aa295b315c2d2570e942e6a056c45028f39b4.tar.gz
compiler_wrapper: Drop "-fno-experimental-pass-manager"
new pass manager is already default in upstream llvm and fixes have been made to broken features. So stop using the old pass manager with sanitizers. BUG=b:210661138 TEST=CQ Change-Id: Ia73f6c89a095a5cac4d8d175afd6ff18edd200a2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/3319340 Reviewed-by: Ryan Beltran <ryanbeltran@chromium.org> Reviewed-by: Christopher Di Bella <cjdb@google.com> Commit-Queue: Manoj Gupta <manojgupta@chromium.org> Tested-by: Manoj Gupta <manojgupta@chromium.org>
-rw-r--r--compiler_wrapper/sanitizer_flags.go17
-rw-r--r--compiler_wrapper/sanitizer_flags_test.go52
-rw-r--r--compiler_wrapper/testdata/cros_clang_host_golden/clang_sanitizer_args.json2
-rw-r--r--compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json2
-rw-r--r--compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json2
5 files changed, 0 insertions, 75 deletions
diff --git a/compiler_wrapper/sanitizer_flags.go b/compiler_wrapper/sanitizer_flags.go
index abb385a8..da0a64b3 100644
--- a/compiler_wrapper/sanitizer_flags.go
+++ b/compiler_wrapper/sanitizer_flags.go
@@ -9,20 +9,13 @@ import (
)
func processSanitizerFlags(builder *commandBuilder) {
- hasCoverageFlags := false
hasSanitizeFlags := false
- hasSanitizeFuzzerFlags := false
for _, arg := range builder.args {
// TODO: This should probably be -fsanitize= to not match on
// e.g. -fsanitize-blocklist
if arg.fromUser {
if strings.HasPrefix(arg.value, "-fsanitize") {
hasSanitizeFlags = true
- if strings.Contains(arg.value, "fuzzer") {
- hasSanitizeFuzzerFlags = true
- }
- } else if arg.value == "-fprofile-instr-generate" {
- hasCoverageFlags = true
}
}
}
@@ -44,15 +37,5 @@ func processSanitizerFlags(builder *commandBuilder) {
}
return arg.value
})
- if builder.target.compilerType == clangType {
- // hasSanitizeFlags && hasCoverageFlags is to work around crbug.com/1013622
- if hasSanitizeFuzzerFlags || (hasSanitizeFlags && hasCoverageFlags) {
- fuzzerFlagsToAdd := []string{
- // TODO: This flag should be removed once fuzzer works with new pass manager
- "-fno-experimental-new-pass-manager",
- }
- builder.addPreUserArgs(fuzzerFlagsToAdd...)
- }
- }
}
}
diff --git a/compiler_wrapper/sanitizer_flags_test.go b/compiler_wrapper/sanitizer_flags_test.go
index 8f50a900..a401d58e 100644
--- a/compiler_wrapper/sanitizer_flags_test.go
+++ b/compiler_wrapper/sanitizer_flags_test.go
@@ -98,55 +98,3 @@ func TestKeepSanitizerFlagsIfSanitizeGivenInCommonFlags(t *testing.T) {
}
})
}
-
-func TestAddFuzzerFlagsForClang(t *testing.T) {
- withTestContext(t, func(ctx *testContext) {
- cmd := ctx.must(callCompiler(ctx, ctx.cfg,
- ctx.newCommand(clangX86_64, "-fsanitize=fuzzer", mainCc)))
- if err := verifyArgOrder(cmd, "-fno-experimental-new-pass-manager",
- "-fsanitize=fuzzer", mainCc); err != nil {
- t.Error(err)
- }
- })
-}
-
-func TestOmitFuzzerFlagsForGcc(t *testing.T) {
- withTestContext(t, func(ctx *testContext) {
- cmd := ctx.must(callCompiler(ctx, ctx.cfg,
- ctx.newCommand(gccX86_64, "-fsanitize=fuzzer", mainCc)))
- if err := verifyArgCount(cmd, 0, "-fno-experimental-new-pass-manager"); err != nil {
- t.Error(err)
- }
- })
-}
-
-func TestAddSanitizerCoverageFlagsForClang(t *testing.T) {
- withTestContext(t, func(ctx *testContext) {
- cmd := ctx.must(callCompiler(ctx, ctx.cfg,
- ctx.newCommand(clangX86_64, "-fsanitize=address", "-fprofile-instr-generate", mainCc)))
- if err := verifyArgOrder(cmd, "-fno-experimental-new-pass-manager",
- "-fsanitize=address", "-fprofile-instr-generate", mainCc); err != nil {
- t.Error(err)
- }
- })
-}
-
-func TestOmitSanitizerCoverageFlagsForClang(t *testing.T) {
- withTestContext(t, func(ctx *testContext) {
- cmd := ctx.must(callCompiler(ctx, ctx.cfg,
- ctx.newCommand(clangX86_64, "-fsanitize=address", mainCc)))
- if err := verifyArgCount(cmd, 0, "-fno-experimental-new-pass-manager"); err != nil {
- t.Error(err)
- }
- })
-}
-
-func TestKeepSanitizerCoverageFlagsForClang(t *testing.T) {
- withTestContext(t, func(ctx *testContext) {
- cmd := ctx.must(callCompiler(ctx, ctx.cfg,
- ctx.newCommand(clangX86_64, "-fprofile-instr-generate", mainCc)))
- if err := verifyArgCount(cmd, 0, "-fno-experimental-new-pass-manager"); err != nil {
- t.Error(err)
- }
- })
-}
diff --git a/compiler_wrapper/testdata/cros_clang_host_golden/clang_sanitizer_args.json b/compiler_wrapper/testdata/cros_clang_host_golden/clang_sanitizer_args.json
index cc64bad9..b8b28cd9 100644
--- a/compiler_wrapper/testdata/cros_clang_host_golden/clang_sanitizer_args.json
+++ b/compiler_wrapper/testdata/cros_clang_host_golden/clang_sanitizer_args.json
@@ -206,7 +206,6 @@
"-Wno-deprecated-declarations",
"-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
"-fcommon",
- "-fno-experimental-new-pass-manager",
"-fsanitize=fuzzer",
"main.cc",
"-Wno-implicit-int-float-conversion",
@@ -251,7 +250,6 @@
"-Wno-deprecated-declarations",
"-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
"-fcommon",
- "-fno-experimental-new-pass-manager",
"-fsanitize=address",
"-fprofile-instr-generate",
"main.cc",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
index 948c19b2..b71a8805 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
@@ -290,7 +290,6 @@
"-pie",
"-fno-omit-frame-pointer",
"-static-libgcc",
- "-fno-experimental-new-pass-manager",
"--prefix=../../bin/x86_64-cros-linux-gnu-",
"-fsanitize=fuzzer",
"main.cc",
@@ -354,7 +353,6 @@
"-pie",
"-fno-omit-frame-pointer",
"-static-libgcc",
- "-fno-experimental-new-pass-manager",
"--prefix=../../bin/x86_64-cros-linux-gnu-",
"-fsanitize=address",
"-fprofile-instr-generate",
diff --git a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json
index f6c9f7cb..3e140d59 100644
--- a/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json
+++ b/compiler_wrapper/testdata/cros_nonhardened_golden/clang_sanitizer_args.json
@@ -250,7 +250,6 @@
"-Wno-deprecated-declarations",
"-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
"-static-libgcc",
- "-fno-experimental-new-pass-manager",
"--prefix=../../bin/x86_64-cros-linux-gnu-",
"-fsanitize=fuzzer",
"main.cc",
@@ -306,7 +305,6 @@
"-Wno-deprecated-declarations",
"-fcrash-diagnostics-dir=/tmp/stable/clang_crash_diagnostics",
"-static-libgcc",
- "-fno-experimental-new-pass-manager",
"--prefix=../../bin/x86_64-cros-linux-gnu-",
"-fsanitize=address",
"-fprofile-instr-generate",