mib created this revision. mib added a reviewer: teemperor. mib added a project: LLDB. Herald added subscribers: lldb-commits, JDevlieghere. mib requested review of this revision.
Previously, before loading the REPL language-specific init file, lldb checked the selected target language in which case it returned an unknown language type with the REPL target. Instead, the patch calls `Language::GetLanguagesSupportingREPLs` and look for the first element of that set. In case lldb was not configured with a REPL language, then, it will just stop sourcing the REPL init file and fallback to the original logic (continuing with the default init file). rdar://65836048 Signed-off-by: Med Ismail Bennani <medismail.benn...@gmail.com> Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D87076 Files: lldb/source/Interpreter/CommandInterpreter.cpp Index: lldb/source/Interpreter/CommandInterpreter.cpp =================================================================== --- lldb/source/Interpreter/CommandInterpreter.cpp +++ lldb/source/Interpreter/CommandInterpreter.cpp @@ -2091,8 +2091,12 @@ FileSystem::Instance().Resolve(init_file); } -static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file, - LanguageType language) { +static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file) { + LanguageSet repl_languages = Language::GetLanguagesSupportingREPLs(); + LanguageType language = {}; + if (auto main_repl_language = repl_languages.GetSingularLanguage()) + language = *main_repl_language; + if (language == LanguageType::eLanguageTypeUnknown) return; @@ -2191,13 +2195,8 @@ llvm::SmallString<128> init_file; - if (is_repl) { - LanguageType language = {}; - TargetSP target_sp = GetDebugger().GetSelectedTarget(); - if (target_sp) - language = target_sp->GetLanguage(); - GetHomeREPLInitFile(init_file, language); - } + if (is_repl) + GetHomeREPLInitFile(init_file); if (init_file.empty()) GetHomeInitFile(init_file);
Index: lldb/source/Interpreter/CommandInterpreter.cpp =================================================================== --- lldb/source/Interpreter/CommandInterpreter.cpp +++ lldb/source/Interpreter/CommandInterpreter.cpp @@ -2091,8 +2091,12 @@ FileSystem::Instance().Resolve(init_file); } -static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file, - LanguageType language) { +static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file) { + LanguageSet repl_languages = Language::GetLanguagesSupportingREPLs(); + LanguageType language = {}; + if (auto main_repl_language = repl_languages.GetSingularLanguage()) + language = *main_repl_language; + if (language == LanguageType::eLanguageTypeUnknown) return; @@ -2191,13 +2195,8 @@ llvm::SmallString<128> init_file; - if (is_repl) { - LanguageType language = {}; - TargetSP target_sp = GetDebugger().GetSelectedTarget(); - if (target_sp) - language = target_sp->GetLanguage(); - GetHomeREPLInitFile(init_file, language); - } + if (is_repl) + GetHomeREPLInitFile(init_file); if (init_file.empty()) GetHomeInitFile(init_file);
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits