summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2018-12-11 08:39:11 +0000
committerClement Courbet <courbet@google.com>2018-12-11 08:39:11 +0000
commitf44c6f402c49a321d79dc57f064711ca8f433136 (patch)
treeb132a6bbbc76cb144f1093c0306006247cc5c33a /clang/lib/Sema/SemaDeclCXX.cpp
parent4bd93fa5bbe91bafbac5a9f606375ddf629001c0 (diff)
downloadbcm5719-llvm-f44c6f402c49a321d79dc57f064711ca8f433136.tar.gz
bcm5719-llvm-f44c6f402c49a321d79dc57f064711ca8f433136.zip
Reland r348741 "[Sema] Further improvements to to static_assert diagnostics."
Fix a dangling reference to temporary, never return nullptr. llvm-svn: 348834
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 16e4d841222..7914a5d40e6 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -13913,9 +13913,9 @@ Decl *Sema::BuildStaticAssertDeclaration(SourceLocation StaticAssertLoc,
Expr *InnerCond = nullptr;
std::string InnerCondDescription;
std::tie(InnerCond, InnerCondDescription) =
- findFailedBooleanCondition(Converted.get(),
- /*AllowTopLevelCond=*/false);
- if (InnerCond) {
+ findFailedBooleanCondition(Converted.get());
+ if (InnerCond && !isa<CXXBoolLiteralExpr>(InnerCond)
+ && !isa<IntegerLiteral>(InnerCond)) {
Diag(StaticAssertLoc, diag::err_static_assert_requirement_failed)
<< InnerCondDescription << !AssertMessage
<< Msg.str() << InnerCond->getSourceRange();
OpenPOWER on IntegriCloud