From 56f87dac69b487f7b9aef4d3fd34c3a8a232a8df Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 15 May 2019 08:39:40 +0200 Subject: Adapt compilerplugins to Clang 9 isExplicitSpecified -> getExplicitSpecifier see "[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 --- compilerplugins/clang/compat.hxx | 16 ++++++++++++++++ compilerplugins/clang/salcall.cxx | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'compilerplugins/clang') 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(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(functionDecl) - && cast(functionDecl)->isExplicitSpecified()) + && compat::isExplicitSpecified(cast(functionDecl))) || (isa(functionDecl) - && cast(functionDecl)->isExplicitSpecified()))) + && compat::isExplicitSpecified(cast(functionDecl))))) { SourceLocation endLoc1; if (macroStartLoc.isMacroID() -- cgit