mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Tweak the name for the function that diagnoses when fuzzing external libraries (#5974)
The old function name caused some confusion during the review of #5338, sending this to see if it provides a less surprising function name and boolean result. Happy to try other names / approaches as well.
This commit is contained in:
@@ -52,7 +52,7 @@ auto ClangSubcommand::Run(DriverEnv& driver_env) -> DriverResult {
|
||||
|
||||
// Don't run Clang when fuzzing, it is known to not be reliable under fuzzing
|
||||
// due to many unfixed issues.
|
||||
if (!DisableFuzzingExternalLibraries(driver_env, "clang")) {
|
||||
if (TestAndDiagnoseIfFuzzingExternalLibraries(driver_env, "clang")) {
|
||||
return {.success = false};
|
||||
}
|
||||
|
||||
|
||||
@@ -923,7 +923,7 @@ auto CompileSubcommand::Run(DriverEnv& driver_env) -> DriverResult {
|
||||
if (driver_env.fuzzing && !options_.clang_args.empty()) {
|
||||
// Parsing specific Clang arguments can reach deep into
|
||||
// external libraries that aren't fuzz clean.
|
||||
DisableFuzzingExternalLibraries(driver_env, "compile");
|
||||
TestAndDiagnoseIfFuzzingExternalLibraries(driver_env, "compile");
|
||||
return {.success = false};
|
||||
}
|
||||
for (auto str : options_.clang_args) {
|
||||
|
||||
@@ -10,12 +10,11 @@
|
||||
|
||||
namespace Carbon {
|
||||
|
||||
auto DriverSubcommand::DisableFuzzingExternalLibraries(DriverEnv& driver_env,
|
||||
llvm::StringRef name)
|
||||
-> bool {
|
||||
auto DriverSubcommand::TestAndDiagnoseIfFuzzingExternalLibraries(
|
||||
DriverEnv& driver_env, llvm::StringRef name) -> bool {
|
||||
// Only need to do anything when fuzzing.
|
||||
if (!driver_env.fuzzing) {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
CARBON_DIAGNOSTIC(
|
||||
@@ -23,7 +22,7 @@ auto DriverSubcommand::DisableFuzzingExternalLibraries(DriverEnv& driver_env,
|
||||
"preventing fuzzing of `{0}` subcommand due to external library",
|
||||
std::string);
|
||||
driver_env.emitter.Emit(ToolFuzzingDisallowed, name.str());
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace Carbon
|
||||
|
||||
@@ -61,13 +61,13 @@ class DriverSubcommand {
|
||||
virtual auto Run(DriverEnv& driver_env) -> DriverResult = 0;
|
||||
|
||||
protected:
|
||||
// Diagnoses and returns false if currently fuzzing.
|
||||
// Tests if fuzzing and if so diagnose and returns true.
|
||||
//
|
||||
// This should be used in subcommands to check and diagnose rather than
|
||||
// This should be used in subcommands to diagnose and exit early rather than
|
||||
// entering them during fuzzing when they use external libraries that we can't
|
||||
// keep fuzz-clean.
|
||||
auto DisableFuzzingExternalLibraries(DriverEnv& driver_env,
|
||||
llvm::StringRef name) -> bool;
|
||||
auto TestAndDiagnoseIfFuzzingExternalLibraries(DriverEnv& driver_env,
|
||||
llvm::StringRef name) -> bool;
|
||||
|
||||
private:
|
||||
// Subcommand information.
|
||||
|
||||
@@ -95,7 +95,7 @@ auto LldSubcommand::Run(DriverEnv& driver_env) -> DriverResult {
|
||||
|
||||
// Don't run LLD when fuzzing, as we're not currently in a good position to
|
||||
// debug and fix fuzzer-found bugs within LLD.
|
||||
if (!DisableFuzzingExternalLibraries(driver_env, "lld")) {
|
||||
if (TestAndDiagnoseIfFuzzingExternalLibraries(driver_env, "lld")) {
|
||||
return {.success = false};
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ auto LLVMSubcommand::Run(DriverEnv& driver_env) -> DriverResult {
|
||||
LLVMRunner runner(driver_env.installation, driver_env.vlog_stream);
|
||||
|
||||
// Don't run arbitrary LLVM tools and libraries when fuzzing.
|
||||
if (!DisableFuzzingExternalLibraries(driver_env, "llvm")) {
|
||||
if (TestAndDiagnoseIfFuzzingExternalLibraries(driver_env, "llvm")) {
|
||||
return {.success = false};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user