Skip to content

Commit c37accf

Browse files
committed
[Option] Avoid using the default argument for the 3-argument hasFlag. NFC
The default argument true is error-prone: I think many would think the default is false.
1 parent da62a5c commit c37accf

File tree

8 files changed

+33
-32
lines changed

8 files changed

+33
-32
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3024,7 +3024,7 @@ class OffloadingActionBuilder final {
30243024
if (Args.hasArg(options::OPT_gpu_bundle_output,
30253025
options::OPT_no_gpu_bundle_output))
30263026
BundleOutput = Args.hasFlag(options::OPT_gpu_bundle_output,
3027-
options::OPT_no_gpu_bundle_output);
3027+
options::OPT_no_gpu_bundle_output, true);
30283028
}
30293029

30303030
bool canUseBundlerUnbundler() const override { return true; }

clang/lib/Driver/SanitizerArgs.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,8 +1016,8 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
10161016
// AMDGPU sanitizer support is experimental and controlled by -fgpu-sanitize.
10171017
if (TC.getTriple().isNVPTX() ||
10181018
(TC.getTriple().isAMDGPU() &&
1019-
!Args.hasFlag(options::OPT_fgpu_sanitize,
1020-
options::OPT_fno_gpu_sanitize)))
1019+
!Args.hasFlag(options::OPT_fgpu_sanitize, options::OPT_fno_gpu_sanitize,
1020+
true)))
10211021
return;
10221022

10231023
// Translate available CoverageFeatures to corresponding clang-cc1 flags.

clang/lib/Driver/ToolChains/AMDGPU.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -947,7 +947,7 @@ ROCMToolChain::getCommonDeviceLibNames(const llvm::opt::ArgList &DriverArgs,
947947
options::OPT_fno_fast_math, false);
948948
bool CorrectSqrt = DriverArgs.hasFlag(
949949
options::OPT_fhip_fp32_correctly_rounded_divide_sqrt,
950-
options::OPT_fno_hip_fp32_correctly_rounded_divide_sqrt);
950+
options::OPT_fno_hip_fp32_correctly_rounded_divide_sqrt, true);
951951
bool Wave64 = isWave64(DriverArgs, Kind);
952952

953953
return RocmInstallation.getCommonBitcodeLibs(

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3905,7 +3905,7 @@ static void RenderDiagnosticsOptions(const Driver &D, const ArgList &Args,
39053905

39063906
// -fdiagnostics-fixit-info is default, only pass non-default.
39073907
if (!Args.hasFlag(options::OPT_fdiagnostics_fixit_info,
3908-
options::OPT_fno_diagnostics_fixit_info))
3908+
options::OPT_fno_diagnostics_fixit_info, true))
39093909
CmdArgs.push_back("-fno-diagnostics-fixit-info");
39103910

39113911
// Enable -fdiagnostics-show-option by default.
@@ -3974,7 +3974,7 @@ static void RenderDiagnosticsOptions(const Driver &D, const ArgList &Args,
39743974
CmdArgs.push_back("-fansi-escape-codes");
39753975

39763976
if (!Args.hasFlag(options::OPT_fshow_source_location,
3977-
options::OPT_fno_show_source_location))
3977+
options::OPT_fno_show_source_location, true))
39783978
CmdArgs.push_back("-fno-show-source-location");
39793979

39803980
if (Args.hasArg(options::OPT_fdiagnostics_absolute_paths))
@@ -3985,7 +3985,7 @@ static void RenderDiagnosticsOptions(const Driver &D, const ArgList &Args,
39853985
CmdArgs.push_back("-fno-show-column");
39863986

39873987
if (!Args.hasFlag(options::OPT_fspell_checking,
3988-
options::OPT_fno_spell_checking))
3988+
options::OPT_fno_spell_checking, true))
39893989
CmdArgs.push_back("-fno-spell-checking");
39903990
}
39913991

@@ -4780,7 +4780,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
47804780

47814781
// Render the CodeGen options that need to be passed.
47824782
if (!Args.hasFlag(options::OPT_foptimize_sibling_calls,
4783-
options::OPT_fno_optimize_sibling_calls))
4783+
options::OPT_fno_optimize_sibling_calls, true))
47844784
CmdArgs.push_back("-mdisable-tail-calls");
47854785

47864786
RenderFloatingPointOptions(TC, D, isOptimizationLevelFast(Args), Args,
@@ -5156,7 +5156,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
51565156
options::OPT_fno_strict_aliasing, TBAAOnByDefault))
51575157
CmdArgs.push_back("-relaxed-aliasing");
51585158
if (!Args.hasFlag(options::OPT_fstruct_path_tbaa,
5159-
options::OPT_fno_struct_path_tbaa))
5159+
options::OPT_fno_struct_path_tbaa, true))
51605160
CmdArgs.push_back("-no-struct-path-tbaa");
51615161
if (Args.hasFlag(options::OPT_fstrict_enums, options::OPT_fno_strict_enums,
51625162
false))
@@ -5176,7 +5176,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
51765176
false))
51775177
CmdArgs.push_back("-fforce-emit-vtables");
51785178
if (!Args.hasFlag(options::OPT_foptimize_sibling_calls,
5179-
options::OPT_fno_optimize_sibling_calls))
5179+
options::OPT_fno_optimize_sibling_calls, true))
51805180
CmdArgs.push_back("-mdisable-tail-calls");
51815181
if (Args.hasFlag(options::OPT_fno_escaping_block_tail_calls,
51825182
options::OPT_fescaping_block_tail_calls, false))
@@ -6298,7 +6298,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
62986298
RenderBuiltinOptions(TC, RawTriple, Args, CmdArgs);
62996299

63006300
if (!Args.hasFlag(options::OPT_fassume_sane_operator_new,
6301-
options::OPT_fno_assume_sane_operator_new))
6301+
options::OPT_fno_assume_sane_operator_new, true))
63026302
CmdArgs.push_back("-fno-assume-sane-operator-new");
63036303

63046304
// -fblocks=0 is default.
@@ -6577,7 +6577,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
65776577

65786578
// C++ "sane" operator new.
65796579
if (!Args.hasFlag(options::OPT_fassume_sane_operator_new,
6580-
options::OPT_fno_assume_sane_operator_new))
6580+
options::OPT_fno_assume_sane_operator_new, true))
65816581
CmdArgs.push_back("-fno-assume-sane-operator-new");
65826582

65836583
// -frelaxed-template-template-args is off by default, as it is a severe
@@ -6614,9 +6614,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
66146614
// -fconstant-cfstrings is default, and may be subject to argument translation
66156615
// on Darwin.
66166616
if (!Args.hasFlag(options::OPT_fconstant_cfstrings,
6617-
options::OPT_fno_constant_cfstrings) ||
6617+
options::OPT_fno_constant_cfstrings, true) ||
66186618
!Args.hasFlag(options::OPT_mconstant_cfstrings,
6619-
options::OPT_mno_constant_cfstrings))
6619+
options::OPT_mno_constant_cfstrings, true))
66206620
CmdArgs.push_back("-fno-constant-cfstrings");
66216621

66226622
// -fno-pascal-strings is default, only pass non-default.
@@ -6660,12 +6660,12 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
66606660
// -fsigned-bitfields is default, and clang doesn't yet support
66616661
// -funsigned-bitfields.
66626662
if (!Args.hasFlag(options::OPT_fsigned_bitfields,
6663-
options::OPT_funsigned_bitfields))
6663+
options::OPT_funsigned_bitfields, true))
66646664
D.Diag(diag::warn_drv_clang_unsupported)
66656665
<< Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args);
66666666

66676667
// -fsigned-bitfields is default, and clang doesn't support -fno-for-scope.
6668-
if (!Args.hasFlag(options::OPT_ffor_scope, options::OPT_fno_for_scope))
6668+
if (!Args.hasFlag(options::OPT_ffor_scope, options::OPT_fno_for_scope, true))
66696669
D.Diag(diag::err_drv_clang_unsupported)
66706670
<< Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args);
66716671

clang/lib/Driver/ToolChains/HIPAMD.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static bool shouldSkipSanitizeOption(const ToolChain &TC,
4747
return false;
4848

4949
if (!DriverArgs.hasFlag(options::OPT_fgpu_sanitize,
50-
options::OPT_fno_gpu_sanitize))
50+
options::OPT_fno_gpu_sanitize, true))
5151
return true;
5252

5353
auto &Diags = TC.getDriver().getDiags();
@@ -162,7 +162,8 @@ HIPAMDToolChain::HIPAMDToolChain(const Driver &D, const llvm::Triple &Triple,
162162
getProgramPaths().push_back(getDriver().Dir);
163163

164164
// Diagnose unsupported sanitizer options only once.
165-
if (!Args.hasFlag(options::OPT_fgpu_sanitize, options::OPT_fno_gpu_sanitize))
165+
if (!Args.hasFlag(options::OPT_fgpu_sanitize, options::OPT_fno_gpu_sanitize,
166+
true))
166167
return;
167168
for (auto A : Args.filtered(options::OPT_fsanitize_EQ)) {
168169
SanitizerMask K = parseSanitizerValue(A->getValue(), /*AllowGroups=*/false);
@@ -332,7 +333,7 @@ HIPAMDToolChain::getHIPDeviceLibs(const llvm::opt::ArgList &DriverArgs) const {
332333

333334
// If --hip-device-lib is not set, add the default bitcode libraries.
334335
if (DriverArgs.hasFlag(options::OPT_fgpu_sanitize,
335-
options::OPT_fno_gpu_sanitize) &&
336+
options::OPT_fno_gpu_sanitize, true) &&
336337
getSanitizerArgs(DriverArgs).needsAsanRt()) {
337338
auto AsanRTL = RocmInstallation.getAsanRTLPath();
338339
if (AsanRTL.empty()) {

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1982,8 +1982,8 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args,
19821982
else if (Args.hasArg(options::OPT_fno_finite_loops))
19831983
Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Never;
19841984

1985-
Opts.EmitIEEENaNCompliantInsts =
1986-
Args.hasFlag(options::OPT_mamdgpu_ieee, options::OPT_mno_amdgpu_ieee);
1985+
Opts.EmitIEEENaNCompliantInsts = Args.hasFlag(
1986+
options::OPT_mamdgpu_ieee, options::OPT_mno_amdgpu_ieee, true);
19871987
if (!Opts.EmitIEEENaNCompliantInsts && !LangOptsRef.NoHonorNaNs)
19881988
Diags.Report(diag::err_drv_amdgpu_ieee_without_no_honor_nans);
19891989

lld/COFF/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1500,7 +1500,7 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
15001500
}
15011501

15021502
// Handle /demangle
1503-
config->demangle = args.hasFlag(OPT_demangle, OPT_demangle_no);
1503+
config->demangle = args.hasFlag(OPT_demangle, OPT_demangle_no, true);
15041504

15051505
// Handle /debugtype
15061506
config->debugTypes = parseDebugTypes(args);

llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -870,11 +870,12 @@ objcopy::parseObjcopyOptions(ArrayRef<const char *> RawArgsArr,
870870
InputArgs.hasArg(OBJCOPY_extract_main_partition);
871871
ELFConfig.LocalizeHidden = InputArgs.hasArg(OBJCOPY_localize_hidden);
872872
Config.Weaken = InputArgs.hasArg(OBJCOPY_weaken);
873-
if (InputArgs.hasArg(OBJCOPY_discard_all, OBJCOPY_discard_locals))
874-
Config.DiscardMode =
875-
InputArgs.hasFlag(OBJCOPY_discard_all, OBJCOPY_discard_locals)
876-
? DiscardType::All
877-
: DiscardType::Locals;
873+
if (auto *Arg =
874+
InputArgs.getLastArg(OBJCOPY_discard_all, OBJCOPY_discard_locals)) {
875+
Config.DiscardMode = Arg->getOption().matches(OBJCOPY_discard_all)
876+
? DiscardType::All
877+
: DiscardType::Locals;
878+
}
878879
Config.OnlyKeepDebug = InputArgs.hasArg(OBJCOPY_only_keep_debug);
879880
ELFConfig.KeepFileSymbols = InputArgs.hasArg(OBJCOPY_keep_file_symbols);
880881
MachOConfig.KeepUndefined = InputArgs.hasArg(OBJCOPY_keep_undefined);
@@ -1277,11 +1278,10 @@ objcopy::parseStripOptions(ArrayRef<const char *> RawArgsArr,
12771278
ELFConfig.AllowBrokenLinks = InputArgs.hasArg(STRIP_allow_broken_links);
12781279
Config.StripDebug = InputArgs.hasArg(STRIP_strip_debug);
12791280

1280-
if (InputArgs.hasArg(STRIP_discard_all, STRIP_discard_locals))
1281-
Config.DiscardMode =
1282-
InputArgs.hasFlag(STRIP_discard_all, STRIP_discard_locals)
1283-
? DiscardType::All
1284-
: DiscardType::Locals;
1281+
if (auto *Arg = InputArgs.getLastArg(STRIP_discard_all, STRIP_discard_locals))
1282+
Config.DiscardMode = Arg->getOption().matches(STRIP_discard_all)
1283+
? DiscardType::All
1284+
: DiscardType::Locals;
12851285
Config.StripSections = InputArgs.hasArg(STRIP_strip_sections);
12861286
Config.StripUnneeded = InputArgs.hasArg(STRIP_strip_unneeded);
12871287
if (auto Arg = InputArgs.getLastArg(STRIP_strip_all, STRIP_no_strip_all))

0 commit comments

Comments
 (0)