diff options
author | Clement Courbet <courbet@google.com> | 2018-12-11 08:39:11 +0000 |
---|---|---|
committer | Clement Courbet <courbet@google.com> | 2018-12-11 08:39:11 +0000 |
commit | f44c6f402c49a321d79dc57f064711ca8f433136 (patch) | |
tree | b132a6bbbc76cb144f1093c0306006247cc5c33a /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 4bd93fa5bbe91bafbac5a9f606375ddf629001c0 (diff) | |
download | bcm5719-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.cpp | 6 |
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(); |