francii created this revision.
Herald added a project: All.
francii requested review of this revision.
Herald added subscribers: cfe-commits, MaskRay.
Herald added a project: clang.
when certain flags are specified, the Crt0 object files are not linked.
However, the logic for determining which files will always run. This
patch moves that logic so that the basename is only determined if it is
needed.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D146443
Files:
clang/lib/Driver/ToolChains/AIX.cpp
Index: clang/lib/Driver/ToolChains/AIX.cpp
===================================================================
--- clang/lib/Driver/ToolChains/AIX.cpp
+++ clang/lib/Driver/ToolChains/AIX.cpp
@@ -163,19 +163,19 @@
CmdArgs.push_back("-bpD:0x110000000");
}
- auto getCrt0Basename = [&Args, IsArch32Bit] {
- if (Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg)) {
- // Enable gprofiling when "-pg" is specified.
- if (A->getOption().matches(options::OPT_pg))
- return IsArch32Bit ? "gcrt0.o" : "gcrt0_64.o";
- // Enable profiling when "-p" is specified.
- return IsArch32Bit ? "mcrt0.o" : "mcrt0_64.o";
- }
- return IsArch32Bit ? "crt0.o" : "crt0_64.o";
- };
-
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles,
options::OPT_shared, options::OPT_r)) {
+ auto getCrt0Basename = [&Args, IsArch32Bit] {
+ if (Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg)) {
+ // Enable gprofiling when "-pg" is specified.
+ if (A->getOption().matches(options::OPT_pg))
+ return IsArch32Bit ? "gcrt0.o" : "gcrt0_64.o";
+ // Enable profiling when "-p" is specified.
+ return IsArch32Bit ? "mcrt0.o" : "mcrt0_64.o";
+ }
+ return IsArch32Bit ? "crt0.o" : "crt0_64.o";
+ };
+
CmdArgs.push_back(
Args.MakeArgString(ToolChain.GetFilePath(getCrt0Basename())));
Index: clang/lib/Driver/ToolChains/AIX.cpp
===================================================================
--- clang/lib/Driver/ToolChains/AIX.cpp
+++ clang/lib/Driver/ToolChains/AIX.cpp
@@ -163,19 +163,19 @@
CmdArgs.push_back("-bpD:0x110000000");
}
- auto getCrt0Basename = [&Args, IsArch32Bit] {
- if (Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg)) {
- // Enable gprofiling when "-pg" is specified.
- if (A->getOption().matches(options::OPT_pg))
- return IsArch32Bit ? "gcrt0.o" : "gcrt0_64.o";
- // Enable profiling when "-p" is specified.
- return IsArch32Bit ? "mcrt0.o" : "mcrt0_64.o";
- }
- return IsArch32Bit ? "crt0.o" : "crt0_64.o";
- };
-
if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles,
options::OPT_shared, options::OPT_r)) {
+ auto getCrt0Basename = [&Args, IsArch32Bit] {
+ if (Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg)) {
+ // Enable gprofiling when "-pg" is specified.
+ if (A->getOption().matches(options::OPT_pg))
+ return IsArch32Bit ? "gcrt0.o" : "gcrt0_64.o";
+ // Enable profiling when "-p" is specified.
+ return IsArch32Bit ? "mcrt0.o" : "mcrt0_64.o";
+ }
+ return IsArch32Bit ? "crt0.o" : "crt0_64.o";
+ };
+
CmdArgs.push_back(
Args.MakeArgString(ToolChain.GetFilePath(getCrt0Basename())));
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits