summaryrefslogtreecommitdiff
path: root/compilerplugins
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2019-05-15 08:39:40 +0200
committerStephan Bergmann <sbergman@redhat.com>2019-05-16 12:41:36 +0200
commit56f87dac69b487f7b9aef4d3fd34c3a8a232a8df (patch)
treeb36becbbce8a18882785e97267a2139dd1855c5c /compilerplugins
parent963b9aaa68b3e7be765a283d74205add9465833f (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>
Diffstat (limited to 'compilerplugins')
-rw-r--r--compilerplugins/clang/compat.hxx16
-rw-r--r--compilerplugins/clang/salcall.cxx4
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()