diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-08-28 22:33:53 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-08-28 22:33:53 +0000 |
commit | d35cb054c9430b6a593c064d96a6a7cfb69bb0e9 (patch) | |
tree | 117d0a332bace35209d6783f71d3c5502270f001 /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 007b0a0e275700d97af1e4df502b3945fdc4dd57 (diff) | |
download | bcm5719-llvm-d35cb054c9430b6a593c064d96a6a7cfb69bb0e9.tar.gz bcm5719-llvm-d35cb054c9430b6a593c064d96a6a7cfb69bb0e9.zip |
PR24612: Don't bail out of checking a constexpr function before checking
whether it can ever produce a constant expression in the case where it has a
void return type and no return statements.
llvm-svn: 246347
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 8afa3324661..9c08495286c 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -1230,9 +1230,9 @@ bool Sema::CheckConstexprFunctionBody(const FunctionDecl *Dcl, Stmt *Body) { Diag(Dcl->getLocation(), OK ? diag::warn_cxx11_compat_constexpr_body_no_return : diag::err_constexpr_body_no_return); - return OK; - } - if (ReturnStmts.size() > 1) { + if (!OK) + return false; + } else if (ReturnStmts.size() > 1) { Diag(ReturnStmts.back(), getLangOpts().CPlusPlus14 ? diag::warn_cxx11_compat_constexpr_body_multiple_return |