mirror of
https://github.com/MaskRay/ccls.git
synced 2025-12-15 11:43:27 +00:00
Adapt llvm 22 changes
Type::Elaborated is removed by llvmorg-22-init-3166-g91cdd35008e9 llvm::sys::fs and clang functions are changed due to https://discourse.llvm.org/t/rfc-file-system-sandboxing-in-clang-llvm/88791
This commit is contained in:
parent
a7068f13ec
commit
d31cc9f076
@ -364,9 +364,11 @@ try_again:
|
||||
|
||||
// FIXME: Template type parameters!
|
||||
|
||||
#if LLVM_VERSION_MAJOR < 22 // llvmorg-22-init-3166-g91cdd35008e9
|
||||
case Type::Elaborated:
|
||||
tp = cast<ElaboratedType>(tp)->getNamedType().getTypePtrOrNull();
|
||||
goto try_again;
|
||||
#endif
|
||||
|
||||
default:
|
||||
break;
|
||||
@ -1266,7 +1268,7 @@ IndexResult index(WorkingFiles *wfiles, VFS *vfs, const std::string &opt_wdir, c
|
||||
clang->setInvocation(std::move(ci));
|
||||
#endif
|
||||
clang->createDiagnostics(
|
||||
#if LLVM_VERSION_MAJOR >= 20
|
||||
#if LLVM_VERSION_MAJOR >= 20 && LLVM_VERSION_MAJOR < 22
|
||||
*fs,
|
||||
#endif
|
||||
&dc, false);
|
||||
@ -1279,7 +1281,12 @@ IndexResult index(WorkingFiles *wfiles, VFS *vfs, const std::string &opt_wdir, c
|
||||
if (!clang->hasTarget())
|
||||
return {};
|
||||
clang->getPreprocessorOpts().RetainRemappedFileBuffers = true;
|
||||
#if LLVM_VERSION_MAJOR >= 22
|
||||
clang->setVirtualFileSystem(fs);
|
||||
clang->createFileManager();
|
||||
#else
|
||||
clang->createFileManager(fs);
|
||||
#endif
|
||||
clang->setSourceManager(new SourceManager(clang->getDiagnostics(), clang->getFileManager(), true));
|
||||
|
||||
IndexParam param(*vfs, no_linkage);
|
||||
|
||||
@ -345,7 +345,11 @@ void do_initialize(MessageHandler *m, InitializeParam ¶m, ReplyOnce &reply)
|
||||
|
||||
if (g_config->cache.directory.size()) {
|
||||
SmallString<256> path(g_config->cache.directory);
|
||||
#if LLVM_VERSION_MAJOR >= 22
|
||||
sys::path::make_absolute(project_path, path);
|
||||
#else
|
||||
sys::fs::make_absolute(project_path, path);
|
||||
#endif
|
||||
// Use upper case for the Driver letter on Windows.
|
||||
g_config->cache.directory = normalizePath(path.str());
|
||||
ensureEndsInSlash(g_config->cache.directory);
|
||||
|
||||
@ -268,7 +268,7 @@ std::unique_ptr<CompilerInstance> buildCompilerInstance(Session &session, std::u
|
||||
clang->setInvocation(std::move(ci));
|
||||
#endif
|
||||
clang->createDiagnostics(
|
||||
#if LLVM_VERSION_MAJOR >= 20
|
||||
#if LLVM_VERSION_MAJOR >= 20 && LLVM_VERSION_MAJOR < 22
|
||||
*fs,
|
||||
#endif
|
||||
&dc, false);
|
||||
@ -283,7 +283,12 @@ std::unique_ptr<CompilerInstance> buildCompilerInstance(Session &session, std::u
|
||||
// Construct SourceManager with UserFilesAreVolatile: true because otherwise
|
||||
// RequiresNullTerminator: true may cause out-of-bounds read when a file is
|
||||
// mmap'ed but is saved concurrently.
|
||||
#if LLVM_VERSION_MAJOR >= 22
|
||||
clang->setVirtualFileSystem(fs);
|
||||
clang->createFileManager();
|
||||
#else
|
||||
clang->createFileManager(fs);
|
||||
#endif
|
||||
clang->setSourceManager(new SourceManager(clang->getDiagnostics(), clang->getFileManager(), true));
|
||||
auto &isec = clang->getFrontendOpts().Inputs;
|
||||
if (isec.size()) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user