diff options
author | Sterling Augustine <saugustine@google.com> | 2019-01-10 22:25:58 +0000 |
---|---|---|
committer | Sterling Augustine <saugustine@google.com> | 2019-01-10 22:25:58 +0000 |
commit | b6d0f85daf1e0273d40a0ff133a90805c7bb2ef7 (patch) | |
tree | 6d3b067554fd12d79aa7858a4a6b41f0ce19a188 /clang/lib/Driver/ToolChains/CommonArgs.cpp | |
parent | 44aefe0bfbd95036d0473fb10f726be83a2ff10a (diff) | |
download | bcm5719-llvm-b6d0f85daf1e0273d40a0ff133a90805c7bb2ef7.tar.gz bcm5719-llvm-b6d0f85daf1e0273d40a0ff133a90805c7bb2ef7.zip |
Properly support -shared-libgcc.
This revision was revied in D55016.
llvm-svn: 350900
Diffstat (limited to 'clang/lib/Driver/ToolChains/CommonArgs.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains/CommonArgs.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index dcafc5d1ab3..cada16174fb 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1159,11 +1159,8 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, bool StaticLibgcc = Args.hasArg(options::OPT_static_libgcc) || Args.hasArg(options::OPT_static); - // The driver ignores -shared-libgcc and therefore treats such cases as - // unspecified. Breaking out the two variables as below makes the current - // behavior explicit. - bool UnspecifiedLibgcc = !StaticLibgcc; - bool SharedLibgcc = !StaticLibgcc; + bool SharedLibgcc = Args.hasArg(options::OPT_shared_libgcc); + bool UnspecifiedLibgcc = !StaticLibgcc && !SharedLibgcc; // Gcc adds libgcc arguments in various ways: // @@ -1180,7 +1177,7 @@ static void AddLibgcc(const llvm::Triple &Triple, const Driver &D, if (LibGccFirst) CmdArgs.push_back("-lgcc"); - bool AsNeeded = D.CCCIsCC() && !StaticLibgcc && !isAndroid && !isCygMing; + bool AsNeeded = D.CCCIsCC() && UnspecifiedLibgcc && !isAndroid && !isCygMing; if (AsNeeded) CmdArgs.push_back("--as-needed"); |