summaryrefslogtreecommitdiff
path: root/compilerplugins/clang/compat.hxx
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2023-11-06 10:51:31 +0100
committerStephan Bergmann <sbergman@redhat.com>2023-11-06 21:17:59 +0100
commitc9cedde7c0ba396dadfabbf644c6329e65afebf9 (patch)
tree34cd71285b8b102eeb1e0b4f48ef256381f2725b /compilerplugins/clang/compat.hxx
parent0c54c09aeb7e170512195c8f619ab2ded98c1ec5 (diff)
Adapt to various Clang 18 trunk enum rework
<https://github.com/llvm/llvm-project/commit/a9070f22a29e28f7d6f83c24a8dd88f3a94969ae> "[clang][NFC] Refactor `CXXConstructExpr::ConstructionKind`", <https://github.com/llvm/llvm-project/commit/c23aaa410358b9f9c364ddaaeb6b2069b185a99b> "[clang][NFC] Refactor `CharacterLiteral::CharacterKind`", <https://github.com/llvm/llvm-project/commit/3e6ce58701a3a8463b53fb3fd2023c02b4e90554> "[clang][NFC] Refactor `StringLiteral::StringKind`", <https://github.com/llvm/llvm-project/commit/edd690b02e16e991393bf7f67631196942369aed> "[clang][NFC] Refactor `TagTypeKind` (#71160)" Change-Id: Ice802f6d662494781ad22fcf11ea5006de918254 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158983 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'compilerplugins/clang/compat.hxx')
-rw-r--r--compilerplugins/clang/compat.hxx40
1 files changed, 40 insertions, 0 deletions
diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx
index df4052ef108a..d122933eeaaf 100644
--- a/compilerplugins/clang/compat.hxx
+++ b/compilerplugins/clang/compat.hxx
@@ -82,6 +82,24 @@ constexpr clang::ExprValueKind VK_PRValue = clang::VK_PRValue;
constexpr clang::ExprValueKind VK_PRValue = clang::VK_RValue;
#endif
+namespace CXXConstructionKind
+{
+#if CLANG_VERSION >= 180000
+constexpr clang::CXXConstructionKind Complete = clang::CXXConstructionKind::Complete;
+#else
+constexpr clang::CXXConstructExpr::ConstructionKind Complete = clang::CXXConstructExpr::CK_Complete;
+#endif
+}
+
+namespace CharacterLiteralKind
+{
+#if CLANG_VERSION >= 180000
+constexpr clang::CharacterLiteralKind Ascii = clang::CharacterLiteralKind::Ascii;
+#else
+constexpr clang::CharacterLiteral::CharacterKind Ascii = clang::CharacterLiteral::Ascii;
+#endif
+}
+
namespace ElaboratedTypeKeyword
{
#if CLANG_VERSION >= 180000
@@ -102,6 +120,28 @@ constexpr clang::Linkage Module = clang::ModuleLinkage;
#endif
}
+namespace StringLiteralKind
+{
+#if CLANG_VERSION >= 180000
+constexpr clang::StringLiteralKind UTF8 = clang::StringLiteralKind::UTF8;
+#else
+constexpr clang::StringLiteral::StringKind UTF8 = clang::StringLiteral::UTF8;
+#endif
+}
+
+namespace TagTypeKind
+{
+#if CLANG_VERSION >= 180000
+constexpr clang::TagTypeKind Class = clang::TagTypeKind::Class;
+constexpr clang::TagTypeKind Struct = clang::TagTypeKind::Struct;
+constexpr clang::TagTypeKind Union = clang::TagTypeKind::Union;
+#else
+constexpr clang::TagTypeKind Class = clang::TTK_Class;
+constexpr clang::TagTypeKind Struct = clang::TTK_Struct;
+constexpr clang::TagTypeKind Union = clang::TTK_Union;
+#endif
+}
+
inline bool EvaluateAsInt(clang::Expr const * expr, llvm::APSInt& intRes, const clang::ASTContext& ctx) {
clang::Expr::EvalResult res;
bool b = expr->EvaluateAsInt(res, ctx);