}
auto getCrt0Basename = [&Args, IsArch32Bit] {
- Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg);
// Enable gprofiling when "-pg" is specified.
- if (A->getOption().matches(options::OPT_pg))
+ if (Args.hasArg(options::OPT_pg))
return IsArch32Bit ? "gcrt0.o" : "gcrt0_64.o";
// Enable profiling when "-p" is specified.
- else if (A->getOption().matches(options::OPT_p))
+ else if (Args.hasArg(options::OPT_p))
return IsArch32Bit ? "mcrt0.o" : "mcrt0_64.o";
else
return IsArch32Bit ? "crt0.o" : "crt0_64.o";
CmdArgs.push_back("-lc");
- if (Args.hasArgNoClaim(options::OPT_p, options::OPT_pg)) {
+ if (Args.hasArg(options::OPT_p, options::OPT_pg)) {
CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) +
"/lib/profiled"));
CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) +
<< A->getAsString(Args) << TripleStr;
}
}
-
- if (Arg *A = Args.getLastArgNoClaim(options::OPT_pg)) {
- if (TC.getTriple().isOSzOS()) {
+ if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) {
+ if (TC.getTriple().isOSAIX()) {
+ CmdArgs.push_back("-pg");
+ } else if (!TC.getTriple().isOSOpenBSD()) {
D.Diag(diag::err_drv_unsupported_opt_for_target)
<< A->getAsString(Args) << TripleStr;
}
}
- if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) {
- if (!(TC.getTriple().isOSAIX() || TC.getTriple().isOSOpenBSD())) {
+ if (Arg *A = Args.getLastArgNoClaim(options::OPT_pg)) {
+ if (TC.getTriple().isOSzOS()) {
D.Diag(diag::err_drv_unsupported_opt_for_target)
<< A->getAsString(Args) << TripleStr;
}
}
- if (Arg *A = Args.getLastArgNoClaim(options::OPT_p, options::OPT_pg)) {
- if (A->getOption().matches(options::OPT_p)) {
- A->claim();
- if (TC.getTriple().isOSAIX() && !Args.hasArgNoClaim(options::OPT_pg))
- CmdArgs.push_back("-pg");
- }
- }
if (Args.getLastArg(options::OPT_fapple_kext) ||
(Args.hasArg(options::OPT_mkernel) && types::isCXX(InputType)))
+++ /dev/null
-// Check that -pg throws an error on z/OS.
-// RUN: %clang -### 2>&1 --target=s390x-none-zos -S -pg %s | FileCheck -check-prefix=FAIL-PG-NAME %s
-// FAIL-PG-NAME: error: unsupported option '-pg' for target 's390x-none-zos'
-
-// Check that -p is still used when not linking on AIX.
-// RUN: %clang -### 2>&1 --target=powerpc-ibm-aix7.1.0.0 -S -p -S %s \
-// RUN: | FileCheck --check-prefix=CHECK %s
-// CHECK-NOT: warning: argument unused during compilation: '-p'
-
-// Check precedence: -pg is unused when passed first on AIX.
-// RUN: %clang -### 2>&1 --target=powerpc-ibm-aix7.1.0.0 --sysroot %S/Inputs/aix_ppc_tree -pg -p %s \
-// RUN: | FileCheck --check-prefix=CHECK2 %s
-// CHECK2-NOT: warning: argument unused during compilation: '-p' [-Wunused-command-line-argument]
-// CHECK2: "-isysroot" "[[SYSROOT:[^"]+]]"
-// CHECK2: "[[SYSROOT]]/usr/lib{{/|\\\\}}mcrt0.o"
-// CHECK2: "-L[[SYSROOT]]/lib/profiled"
-// CHECK2: "-L[[SYSROOT]]/usr/lib/profiled"
-
-// Check precedence: -p is unused when passed first on AIX.
-// RUN: %clang -### 2>&1 --target=powerpc-ibm-aix7.1.0.0 --sysroot %S/Inputs/aix_ppc_tree -p -pg %s \
-// RUN: | FileCheck --check-prefix=CHECK3 %s
-// CHECK3: warning: argument unused during compilation: '-p' [-Wunused-command-line-argument]
-// CHECK3: "-isysroot" "[[SYSROOT:[^"]+]]"
-// CHECK3: "[[SYSROOT]]/usr/lib{{/|\\\\}}gcrt0.o"
-// CHECK3: "-L[[SYSROOT]]/lib/profiled"
-// CHECK3: "-L[[SYSROOT]]/usr/lib/profiled"
-
--- /dev/null
+// RUN: %clang 2>&1 -### --target=s390x-none-zos -pg -S %s | FileCheck -check-prefix=FAIL-PG-NAME %s
+// FAIL-PG-NAME: error: unsupported option '-pg' for target 's390x-none-zos'