diff options
-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() |