From 7ff4946b291af3bca30386e0721ee491ce5348be Mon Sep 17 00:00:00 2001 From: Michael Buch Date: Wed, 3 Sep 2025 11:23:12 +0100 Subject: [PATCH] [lldb][ExpressionParser][NFC] Clean up expression language picking logic This patch moves the `frame_lang` logic to just the logging (because that's what it was always used for anyway). The callsites decide whether to fall back on to the frame language or not when running the expression. --- .../Clang/ClangExpressionParser.cpp | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp index 86ff010e760fa..097a4661e0c96 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp @@ -536,23 +536,19 @@ static void SetupLangOpts(CompilerInstance &compiler, lldb::StackFrameSP frame_sp = exe_scope.CalculateStackFrame(); lldb::ProcessSP process_sp = exe_scope.CalculateProcess(); - // Defaults to lldb::eLanguageTypeUnknown. - lldb::LanguageType frame_lang = expr.Language().AsLanguageType(); - - // Make sure the user hasn't provided a preferred execution language with - // `expression --language X -- ...` - if (frame_sp && frame_lang == lldb::eLanguageTypeUnknown) - frame_lang = frame_sp->GetLanguage().AsLanguageType(); + lldb::LanguageType language = expr.Language().AsLanguageType(); - if (process_sp && frame_lang != lldb::eLanguageTypeUnknown) { - LLDB_LOGF(log, "Frame has language of type %s", - lldb_private::Language::GetNameForLanguageType(frame_lang)); - } + if (process_sp) + LLDB_LOG( + log, + "Frame has language of type {0}\nPicked {1} for expression evaluation.", + lldb_private::Language::GetNameForLanguageType( + frame_sp ? frame_sp->GetLanguage().AsLanguageType() + : lldb::eLanguageTypeUnknown), + lldb_private::Language::GetNameForLanguageType(language)); - lldb::LanguageType language = expr.Language().AsLanguageType(); LangOptions &lang_opts = compiler.getLangOpts(); - // FIXME: should this switch on frame_lang? switch (language) { case lldb::eLanguageTypeC: case lldb::eLanguageTypeC89: