diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-05-15 08:39:40 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-05-16 12:41:36 +0200 |
commit | 56f87dac69b487f7b9aef4d3fd34c3a8a232a8df (patch) | |
tree | b36becbbce8a18882785e97267a2139dd1855c5c | |
parent | 963b9aaa68b3e7be765a283d74205add9465833f (diff) |
Adapt compilerplugins to Clang 9 isExplicitSpecified -> getExplicitSpecifier
see <https://github.com/llvm/llvm-project/commit/
76b9027f352a83c13c98820724071c5e3bea6232> "[c++20] Add support for
explicit(bool), as described in P0892R2."
Change-Id: Ia8a6902a64ab3377328fd5e3ed57246d214176f2
Reviewed-on: https://gerrit.libreoffice.org/72335
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | compilerplugins/clang/compat.hxx | 16 | ||||
-rw-r--r-- | compilerplugins/clang/salcall.cxx | 4 |
2 files changed, 18 insertions, 2 deletions
diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx index 97410fcbdc7a..bdbcdcb46f0b 100644 --- a/compilerplugins/clang/compat.hxx +++ b/compilerplugins/clang/compat.hxx @@ -240,6 +240,22 @@ inline const clang::Expr *getSubExprAsWritten(const clang::CastExpr *This) { return getSubExprAsWritten(const_cast<clang::CastExpr *>(This)); } +inline bool isExplicitSpecified(clang::CXXConstructorDecl const * decl) { +#if CLANG_VERSION >= 80000 + return decl->getExplicitSpecifier().isExplicit(); +#else + return decl->isExplicitSpecified(); +#endif +} + +inline bool isExplicitSpecified(clang::CXXConversionDecl const * decl) { +#if CLANG_VERSION >= 80000 + return decl->getExplicitSpecifier().isExplicit(); +#else + return decl->isExplicitSpecified(); +#endif +} + } #endif diff --git a/compilerplugins/clang/salcall.cxx b/compilerplugins/clang/salcall.cxx index 883f099abc9a..ce32c46893ed 100644 --- a/compilerplugins/clang/salcall.cxx +++ b/compilerplugins/clang/salcall.cxx @@ -536,9 +536,9 @@ bool SalCall::isSalCallFunction(FunctionDecl const* functionDecl, SourceLocation if (noReturnType && !(functionDecl->isVirtualAsWritten() || (isa<CXXConstructorDecl>(functionDecl) - && cast<CXXConstructorDecl>(functionDecl)->isExplicitSpecified()) + && compat::isExplicitSpecified(cast<CXXConstructorDecl>(functionDecl))) || (isa<CXXConversionDecl>(functionDecl) - && cast<CXXConversionDecl>(functionDecl)->isExplicitSpecified()))) + && compat::isExplicitSpecified(cast<CXXConversionDecl>(functionDecl))))) { SourceLocation endLoc1; if (macroStartLoc.isMacroID() |