summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2012-12-09 05:55:43 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2012-12-09 05:55:43 +0000
commitf86b5dc7009e7686fc31ff0d1e8a7bff138607cd (patch)
tree6dee061eaa69cd0598714e34018d7e50a95c1d2e /clang/lib
parentc88e40450d38533980387c8ed0c9ecd9b7e287c4 (diff)
downloadbcm5719-llvm-f86b5dc7009e7686fc31ff0d1e8a7bff138607cd.tar.gz
bcm5719-llvm-f86b5dc7009e7686fc31ff0d1e8a7bff138607cd.zip
PR14550: If a system header contains a bogus constexpr function definition,
don't mark the function as invalid, since we suppress the error. llvm-svn: 169689
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 5cca43b5480..6f1b489a2d2 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -994,11 +994,12 @@ bool Sema::CheckConstexprFunctionBody(const FunctionDecl *Dcl, Stmt *Body) {
// base class sub-objects shall be a constexpr constructor.
llvm::SmallVector<PartialDiagnosticAt, 8> Diags;
if (!Expr::isPotentialConstantExpr(Dcl, Diags)) {
- Diag(Dcl->getLocation(), diag::err_constexpr_function_never_constant_expr)
+ Diag(Dcl->getLocation(), diag::ext_constexpr_function_never_constant_expr)
<< isa<CXXConstructorDecl>(Dcl);
for (size_t I = 0, N = Diags.size(); I != N; ++I)
Diag(Diags[I].first, Diags[I].second);
- return false;
+ // Don't return false here: we allow this for compatibility in
+ // system headers.
}
return true;
OpenPOWER on IntegriCloud