diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-09 05:55:43 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-12-09 05:55:43 +0000 |
commit | f86b5dc7009e7686fc31ff0d1e8a7bff138607cd (patch) | |
tree | 6dee061eaa69cd0598714e34018d7e50a95c1d2e /clang/lib/Sema | |
parent | c88e40450d38533980387c8ed0c9ecd9b7e287c4 (diff) | |
download | bcm5719-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/Sema')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 5 |
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; |