Compare commits

..

3 Commits

Author SHA1 Message Date
rherilier
e71ab5eea1
Merge 5d401fc95d into 4331c89586 2024-11-24 11:08:59 +08:00
Fangrui Song
4331c89586 Adapt llvmorg-20-init-12964-gdf9a14d7bbf1: createDiagnostics 2024-11-23 18:33:49 -08:00
Fangrui Song
5d401fc95d early return and add a comment 2024-11-23 17:52:20 -08:00
4 changed files with 40 additions and 25 deletions

View File

@ -124,9 +124,11 @@ buildCompilerInvocation(const std::string &main, std::vector<const char *> args,
args.insert(args.begin() + 1, std::begin(arr), std::end(arr)); args.insert(args.begin() + 1, std::begin(arr), std::end(arr));
} }
IntrusiveRefCntPtr<DiagnosticsEngine> diags( IntrusiveRefCntPtr<DiagnosticsEngine> diags(CompilerInstance::createDiagnostics(
CompilerInstance::createDiagnostics(new DiagnosticOptions, #if LLVM_VERSION_MAJOR >= 20
new IgnoringDiagConsumer, true)); *vfs,
#endif
new DiagnosticOptions, new IgnoringDiagConsumer, true));
#if LLVM_VERSION_MAJOR < 12 // llvmorg-12-init-5498-g257b29715bb #if LLVM_VERSION_MAJOR < 12 // llvmorg-12-init-5498-g257b29715bb
driver::Driver d(args[0], llvm::sys::getDefaultTargetTriple(), *diags, vfs); driver::Driver d(args[0], llvm::sys::getDefaultTargetTriple(), *diags, vfs);
#else #else

View File

@ -1312,7 +1312,11 @@ index(SemaManager *manager, WorkingFiles *wfiles, VFS *vfs,
IndexDiags dc; IndexDiags dc;
auto clang = std::make_unique<CompilerInstance>(pch); auto clang = std::make_unique<CompilerInstance>(pch);
clang->setInvocation(std::move(ci)); clang->setInvocation(std::move(ci));
clang->createDiagnostics(&dc, false); clang->createDiagnostics(
#if LLVM_VERSION_MAJOR >= 20
*fs,
#endif
&dc, false);
clang->getDiagnostics().setIgnoreAllWarnings(true); clang->getDiagnostics().setIgnoreAllWarnings(true);
clang->setTarget(TargetInfo::CreateTargetInfo( clang->setTarget(TargetInfo::CreateTargetInfo(
clang->getDiagnostics(), clang->getInvocation().TargetOpts)); clang->getDiagnostics(), clang->getInvocation().TargetOpts));

View File

@ -27,7 +27,10 @@ REFLECT_STRUCT(SymbolInformation, name, kind, location, containerName);
void MessageHandler::workspace_didChangeConfiguration(JsonReader &reader) { void MessageHandler::workspace_didChangeConfiguration(JsonReader &reader) {
auto it = reader.m->FindMember("settings"); auto it = reader.m->FindMember("settings");
if (it != reader.m->MemberEnd() && it->value.IsObject()) { if (!(it != reader.m->MemberEnd() && it->value.IsObject()))
return;
// Similar to MessageHandler::initialize.
rapidjson::StringBuffer output; rapidjson::StringBuffer output;
rapidjson::Writer<rapidjson::StringBuffer> writer(output); rapidjson::Writer<rapidjson::StringBuffer> writer(output);
JsonReader m1(&it->value); JsonReader m1(&it->value);
@ -47,7 +50,6 @@ void MessageHandler::workspace_didChangeConfiguration(JsonReader &reader) {
manager->clear(); manager->clear();
} }
}
void MessageHandler::workspace_didChangeWatchedFiles( void MessageHandler::workspace_didChangeWatchedFiles(
DidChangeWatchedFilesParam &param) { DidChangeWatchedFilesParam &param) {

View File

@ -288,7 +288,11 @@ buildCompilerInstance(Session &session, std::unique_ptr<CompilerInvocation> ci,
auto clang = std::make_unique<CompilerInstance>(session.pch); auto clang = std::make_unique<CompilerInstance>(session.pch);
clang->setInvocation(std::move(ci)); clang->setInvocation(std::move(ci));
clang->createDiagnostics(&dc, false); clang->createDiagnostics(
#if LLVM_VERSION_MAJOR >= 20
*fs,
#endif
&dc, false);
clang->setTarget(TargetInfo::CreateTargetInfo( clang->setTarget(TargetInfo::CreateTargetInfo(
clang->getDiagnostics(), clang->getInvocation().TargetOpts)); clang->getDiagnostics(), clang->getInvocation().TargetOpts));
if (!clang->hasTarget()) if (!clang->hasTarget())
@ -368,8 +372,11 @@ void buildPreamble(Session &session, CompilerInvocation &ci,
#endif #endif
StoreDiags dc(task.path); StoreDiags dc(task.path);
IntrusiveRefCntPtr<DiagnosticsEngine> de = IntrusiveRefCntPtr<DiagnosticsEngine> de = CompilerInstance::createDiagnostics(
CompilerInstance::createDiagnostics(&ci.getDiagnosticOpts(), &dc, false); #if LLVM_VERSION_MAJOR >= 20
*fs,
#endif
&ci.getDiagnosticOpts(), &dc, false);
if (oldP) { if (oldP) {
std::lock_guard lock(session.wfiles->mutex); std::lock_guard lock(session.wfiles->mutex);
for (auto &include : oldP->includes) for (auto &include : oldP->includes)