[llvm-branch-commits] [clang] clang: Use MakeArgStringRef more often (PR #189463)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Mar 30 12:46:31 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
Avoid an intermediate copy by using MakeArgStringRef. Also
use better use of Twine with MakeArgString.
---
Full diff: https://github.com/llvm/llvm-project/pull/189463.diff
1 Files Affected:
- (modified) clang/lib/Driver/ToolChains/Clang.cpp (+9-12)
``````````diff
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index d69898cadaaa9..360415700fb9f 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5012,7 +5012,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// Add the "effective" target triple.
CmdArgs.push_back("-triple");
- CmdArgs.push_back(Args.MakeArgString(TripleStr));
+ CmdArgs.push_back(Args.MakeArgStringRef(TripleStr));
if (const Arg *MJ = Args.getLastArg(options::OPT_MJ)) {
DumpCompilationDatabase(C, MJ->getValue(), TripleStr, Output, Input, Args);
@@ -5054,7 +5054,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
Args.getLastArgValue(options::OPT_mprintf_kind_EQ)));
// Force compiler error on invalid conversion specifiers
CmdArgs.push_back(
- Args.MakeArgString("-Werror=format-invalid-specifier"));
+ Args.MakeArgStringRef("-Werror=format-invalid-specifier"));
}
}
}
@@ -5281,7 +5281,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
: "ifs-v1";
CmdArgs.push_back("-emit-interface-stubs");
CmdArgs.push_back(
- Args.MakeArgString(Twine("-interface-stub-version=") + ArgStr.str()));
+ Args.MakeArgString(Twine("-interface-stub-version=") + ArgStr));
} else if (JA.getType() == types::TY_PP_Asm) {
CmdArgs.push_back("-S");
} else if (JA.getType() == types::TY_AST) {
@@ -5567,7 +5567,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
assert(FunctionAlignment <= 31 && "function alignment will be truncated!");
if (FunctionAlignment) {
CmdArgs.push_back("-function-alignment");
- CmdArgs.push_back(Args.MakeArgString(std::to_string(FunctionAlignment)));
+ CmdArgs.push_back(Args.MakeArgString(Twine(FunctionAlignment)));
}
if (const Arg *A =
@@ -6235,11 +6235,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-sys-header-deps");
CmdArgs.push_back(Args.MakeArgString(
"-header-include-format=" +
- std::string(headerIncludeFormatKindToString(D.CCPrintHeadersFormat))));
- CmdArgs.push_back(
- Args.MakeArgString("-header-include-filtering=" +
- std::string(headerIncludeFilteringKindToString(
- D.CCPrintHeadersFiltering))));
+ Twine(headerIncludeFormatKindToString(D.CCPrintHeadersFormat))));
+ CmdArgs.push_back(Args.MakeArgString(
+ "-header-include-filtering=" +
+ Twine(headerIncludeFilteringKindToString(D.CCPrintHeadersFiltering))));
}
Args.AddLastArg(CmdArgs, options::OPT_P);
Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout);
@@ -7636,9 +7635,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
// Honor -fpack-struct= and -fpack-struct, if given. Note that
// -fno-pack-struct doesn't apply to -fpack-struct=.
if (Arg *A = Args.getLastArg(options::OPT_fpack_struct_EQ)) {
- std::string PackStructStr = "-fpack-struct=";
- PackStructStr += A->getValue();
- CmdArgs.push_back(Args.MakeArgString(PackStructStr));
+ CmdArgs.push_back(Args.MakeArgString("-fpack-struct=" + Twine(A->getValue())));
} else if (Args.hasFlag(options::OPT_fpack_struct,
options::OPT_fno_pack_struct, false)) {
CmdArgs.push_back("-fpack-struct=1");
``````````
</details>
https://github.com/llvm/llvm-project/pull/189463
More information about the llvm-branch-commits
mailing list