diff --git a/src/clang_tu.cc b/src/clang_tu.cc index 5c880b32..47563584 100644 --- a/src/clang_tu.cc +++ b/src/clang_tu.cc @@ -116,11 +116,18 @@ std::unique_ptr buildCompilerInvocation(const std::string &m args.insert(args.begin() + 1, std::begin(arr), std::end(arr)); } +#if (LLVM_VERSION_MAJOR == 21 && LLVM_VERSION_MINOR >= 1) || \ + (LLVM_VERSION_MAJOR >= 22) // 13e1a2cb + DiagnosticOptions DiagOpt; +#else + DiagnosticOptions *DiagOpt = new DiagnosticOptions; +#endif + IntrusiveRefCntPtr diags(CompilerInstance::createDiagnostics( #if LLVM_VERSION_MAJOR >= 20 *vfs, #endif - new DiagnosticOptions, new IgnoringDiagConsumer, true)); + DiagOpt, new IgnoringDiagConsumer, true)); #if LLVM_VERSION_MAJOR < 12 // llvmorg-12-init-5498-g257b29715bb driver::Driver d(args[0], llvm::sys::getDefaultTargetTriple(), *diags, vfs); #else diff --git a/src/messages/textDocument_completion.cc b/src/messages/textDocument_completion.cc index a5065515..7ffde855 100644 --- a/src/messages/textDocument_completion.cc +++ b/src/messages/textDocument_completion.cc @@ -350,7 +350,7 @@ public: if (fd->getTemplatedDecl()->getKind() == Decl::CXXDeductionGuide) continue; } - if (auto *rd = dyn_cast(r.Declaration)) + if (auto *rd = dyn_cast(r.Declaration)) if (rd->isInjectedClassName()) continue; auto nk = r.Declaration->getDeclName().getNameKind(); diff --git a/src/sema_manager.cc b/src/sema_manager.cc index 325c9a9c..d1309605 100644 --- a/src/sema_manager.cc +++ b/src/sema_manager.cc @@ -352,7 +352,13 @@ void buildPreamble(Session &session, CompilerInvocation &ci, IntrusiveRefCntPtr< #if LLVM_VERSION_MAJOR >= 20 *fs, #endif - &ci.getDiagnosticOpts(), &dc, false); +#if (LLVM_VERSION_MAJOR == 21 && LLVM_VERSION_MINOR >= 1) || \ + (LLVM_VERSION_MAJOR >= 22) // 13e1a2cb + ci.getDiagnosticOpts(), +#else + &ci.getDiagnosticOpts(), +#endif + &dc, false); if (oldP) { std::lock_guard lock(session.wfiles->mutex); for (auto &include : oldP->includes) @@ -362,7 +368,13 @@ void buildPreamble(Session &session, CompilerInvocation &ci, IntrusiveRefCntPtr< } CclsPreambleCallbacks pc; - if (auto newPreamble = PrecompiledPreamble::Build(ci, buf.get(), bounds, *de, fs, session.pch, true, + if (auto newPreamble = PrecompiledPreamble::Build(ci, buf.get(), bounds, +#if LLVM_VERSION_MAJOR >= 22 // c7f34375 + de, +#else + *de, +#endif + fs, session.pch, true, #if LLVM_VERSION_MAJOR >= 17 // llvmorg-17-init-4072-gcc929590ad30 "", #endif