summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/CommonArgs.cpp
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2018-11-21 20:33:12 +0000
committerPetr Hosek <phosek@chromium.org>2018-11-21 20:33:12 +0000
commit584d9353519f80f526ec9118ca4845226ee1ae3f (patch)
treea283e24ecaf61f6ee922706d94b3aa15e6487044 /clang/lib/Driver/ToolChains/CommonArgs.cpp
parent839a0cb8e092d9045600f9d93b5f769dc8fa2b04 (diff)
downloadbcm5719-llvm-584d9353519f80f526ec9118ca4845226ee1ae3f.tar.gz
bcm5719-llvm-584d9353519f80f526ec9118ca4845226ee1ae3f.zip
[Driver] Use --push/pop-state with Sanitizer link deps
Sanitizer runtime link deps handling passes --no-as-needed because of PR15823, but it never undoes it and this flag may affect other libraries that come later on the link line. To avoid this, wrap Sanitizer link deps in --push/pop-state. Differential Revision: https://reviews.llvm.org/D54805 llvm-svn: 347413
Diffstat (limited to 'clang/lib/Driver/ToolChains/CommonArgs.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/CommonArgs.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 03298a17c37..4f342964882 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -598,6 +598,7 @@ void tools::linkSanitizerRuntimeDeps(const ToolChain &TC,
ArgStringList &CmdArgs) {
// Force linking against the system libraries sanitizers depends on
// (see PR15823 why this is necessary).
+ CmdArgs.push_back("--push-state");
CmdArgs.push_back("--no-as-needed");
// There's no libpthread or librt on RTEMS & Android.
if (TC.getTriple().getOS() != llvm::Triple::RTEMS &&
@@ -617,6 +618,7 @@ void tools::linkSanitizerRuntimeDeps(const ToolChain &TC,
if (TC.getTriple().getOS() == llvm::Triple::NetBSD ||
TC.getTriple().getOS() == llvm::Triple::FreeBSD)
CmdArgs.push_back("-lexecinfo");
+ CmdArgs.push_back("--pop-state");
}
static void
OpenPOWER on IntegriCloud