diff options
| author | Pierre Gousseau <pierregousseau14@gmail.com> | 2018-12-18 17:03:35 +0000 |
|---|---|---|
| committer | Pierre Gousseau <pierregousseau14@gmail.com> | 2018-12-18 17:03:35 +0000 |
| commit | 53b5cfb08035ca02770d6c72752a55742fdd0f5e (patch) | |
| tree | 2a8568588b5e062ea1058ea5ebbea5a7a6b47d68 /clang/lib/Driver/ToolChains | |
| parent | 2a4eea3061bc2c875bfacb4a1858d42036938b66 (diff) | |
| download | bcm5719-llvm-53b5cfb08035ca02770d6c72752a55742fdd0f5e.tar.gz bcm5719-llvm-53b5cfb08035ca02770d6c72752a55742fdd0f5e.zip | |
[Driver][PS4] Do not implicitly link against asan or ubsan if -nostdlib or -nodefaultlibs on PS4.
NFC for targets other than PS4.
Respect -nostdlib and -nodefaultlibs when enabling asan or ubsan.
Differential Revision: https://reviews.llvm.org/D55712
llvm-svn: 349508
Diffstat (limited to 'clang/lib/Driver/ToolChains')
| -rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/Driver/ToolChains/PS4CPU.cpp | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 5b74ffa96cf..1f267e68f17 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -4097,7 +4097,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, ABICompatArg->render(Args, CmdArgs); // Add runtime flag for PS4 when PGO, coverage, or sanitizers are enabled. - if (RawTriple.isPS4CPU()) { + if (RawTriple.isPS4CPU() && + !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { PS4cpu::addProfileRTArgs(TC, Args, CmdArgs); PS4cpu::addSanitizerArgs(TC, CmdArgs); } diff --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp b/clang/lib/Driver/ToolChains/PS4CPU.cpp index a4b74d49233..0708d25fe45 100644 --- a/clang/lib/Driver/ToolChains/PS4CPU.cpp +++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp @@ -121,7 +121,8 @@ static void ConstructPS4LinkJob(const Tool &T, Compilation &C, assert(Output.isNothing() && "Invalid output."); } - AddPS4SanitizerArgs(ToolChain, CmdArgs); + if(!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) + AddPS4SanitizerArgs(ToolChain, CmdArgs); Args.AddAllArgs(CmdArgs, options::OPT_L); Args.AddAllArgs(CmdArgs, options::OPT_T_Group); @@ -190,7 +191,8 @@ static void ConstructGoldLinkJob(const Tool &T, Compilation &C, assert(Output.isNothing() && "Invalid output."); } - AddPS4SanitizerArgs(ToolChain, CmdArgs); + if(!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) + AddPS4SanitizerArgs(ToolChain, CmdArgs); if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { const char *crt1 = nullptr; |

