summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimm Bäder <tbaeder@redhat.com>2022-03-08 14:21:37 +0100
committerTom Stellard <tstellar@redhat.com>2022-03-08 19:22:37 -0800
commitd843bde69aab7fbb3efff34229e8876b1ce80a5b (patch)
treee6d30ff15a2b6ea706aed8dbf85ee06be6fd10ad
parentba9ff030d302910e0d2155536558f71da98d5a5a (diff)
[clang][driver] Fix float128 diagnostics with glibc >= 2.32
Fix checking for an unsupported stdlib++. Differential Revision: https://reviews.llvm.org/D121209 (cherry picked from commit 5b7941ad7c893b4bb019e3c96b760b0f2670ccfc)
-rw-r--r--clang/lib/Driver/ToolChains/PPCLinux.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Driver/ToolChains/PPCLinux.cpp b/clang/lib/Driver/ToolChains/PPCLinux.cpp
index e480d8bd8703..2fea262fd109 100644
--- a/clang/lib/Driver/ToolChains/PPCLinux.cpp
+++ b/clang/lib/Driver/ToolChains/PPCLinux.cpp
@@ -76,9 +76,11 @@ bool PPCLinuxToolChain::SupportIEEEFloat128(
if (Args.hasArg(options::OPT_nostdlib, options::OPT_nostdlibxx))
return true;
+ CXXStdlibType StdLib = ToolChain::GetCXXStdlibType(Args);
bool HasUnsupportedCXXLib =
- ToolChain::GetCXXStdlibType(Args) == CST_Libcxx &&
- GCCInstallation.getVersion().isOlderThan(12, 1, 0);
+ StdLib == CST_Libcxx ||
+ (StdLib == CST_Libstdcxx &&
+ GCCInstallation.getVersion().isOlderThan(12, 1, 0));
return GlibcSupportsFloat128(Linux::getDynamicLinker(Args)) &&
!(D.CCCIsCXX() && HasUnsupportedCXXLib);