Accomate changes of LLVM 21 & 22 to make build pass

This commit is contained in:
Senran Zhang 2025-08-06 11:01:53 +08:00
parent 3799e38920
commit 2aedb544db
3 changed files with 23 additions and 4 deletions

View File

@ -116,11 +116,18 @@ std::unique_ptr<CompilerInvocation> 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<DiagnosticsEngine> 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

View File

@ -350,7 +350,7 @@ public:
if (fd->getTemplatedDecl()->getKind() == Decl::CXXDeductionGuide)
continue;
}
if (auto *rd = dyn_cast<RecordDecl>(r.Declaration))
if (auto *rd = dyn_cast<CXXRecordDecl>(r.Declaration))
if (rd->isInjectedClassName())
continue;
auto nk = r.Declaration->getDeclName().getNameKind();

View File

@ -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