Skip to content

Commit 866b3d9

Browse files
committed
[lldb/Interpreter] Fix language detection for the REPL InitFile
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 Differential Revision: https://reviews.llvm.org/D87076 Signed-off-by: Med Ismail Bennani <[email protected]>
1 parent 52d43e1 commit 866b3d9

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

lldb/source/Interpreter/CommandInterpreter.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2094,9 +2094,12 @@ static void GetHomeInitFile(llvm::SmallVectorImpl<char> &init_file,
20942094
FileSystem::Instance().Resolve(init_file);
20952095
}
20962096

2097-
static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file,
2098-
LanguageType language) {
2099-
if (language == LanguageType::eLanguageTypeUnknown)
2097+
static void GetHomeREPLInitFile(llvm::SmallVectorImpl<char> &init_file) {
2098+
LanguageSet repl_languages = Language::GetLanguagesSupportingREPLs();
2099+
LanguageType language = eLanguageTypeUnknown;
2100+
if (auto main_repl_language = repl_languages.GetSingularLanguage())
2101+
language = *main_repl_language;
2102+
else
21002103
return;
21012104

21022105
std::string init_file_name =
@@ -2194,13 +2197,8 @@ void CommandInterpreter::SourceInitFileHome(CommandReturnObject &result,
21942197

21952198
llvm::SmallString<128> init_file;
21962199

2197-
if (is_repl) {
2198-
LanguageType language = {};
2199-
TargetSP target_sp = GetDebugger().GetSelectedTarget();
2200-
if (target_sp)
2201-
language = target_sp->GetLanguage();
2202-
GetHomeREPLInitFile(init_file, language);
2203-
}
2200+
if (is_repl)
2201+
GetHomeREPLInitFile(init_file);
22042202

22052203
if (init_file.empty())
22062204
GetHomeInitFile(init_file);

0 commit comments

Comments
 (0)