[Lldb-commits] [PATCH] D13267: Decide on the expression language inside UserExpression

Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 7 15:03:10 PDT 2015


This revision was automatically updated to reflect the committed changes.
Closed by commit rL249624: Decide on the expression language inside UserExpression (authored by dperchik).

Changed prior to commit:
  http://reviews.llvm.org/D13267?vs=36029&id=36803#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D13267

Files:
  lldb/trunk/source/Commands/CommandObjectExpression.cpp
  lldb/trunk/source/Expression/UserExpression.cpp

Index: lldb/trunk/source/Commands/CommandObjectExpression.cpp
===================================================================
--- lldb/trunk/source/Commands/CommandObjectExpression.cpp
+++ lldb/trunk/source/Commands/CommandObjectExpression.cpp
@@ -299,16 +299,7 @@
         options.SetUseDynamic(m_varobj_options.use_dynamic);
         options.SetTryAllThreads(m_command_options.try_all_threads);
         options.SetDebug(m_command_options.debug);
-        
-        // If the language was not specified in the expression command,
-        // set it to the language in the target's properties if
-        // specified, else default to the language for the frame.
-        if (m_command_options.language != eLanguageTypeUnknown)
-            options.SetLanguage(m_command_options.language);
-        else if (target->GetLanguage() != eLanguageTypeUnknown)
-            options.SetLanguage(target->GetLanguage());
-        else if (frame)
-            options.SetLanguage(frame->GetLanguage());
+        options.SetLanguage(m_command_options.language);
 
         // If there is any chance we are going to stop and want to see
         // what went wrong with our expression, we should generate debug info
Index: lldb/trunk/source/Expression/UserExpression.cpp
===================================================================
--- lldb/trunk/source/Expression/UserExpression.cpp
+++ lldb/trunk/source/Expression/UserExpression.cpp
@@ -470,7 +470,7 @@
     Log *log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_EXPRESSIONS | LIBLLDB_LOG_STEP));
 
     lldb_private::ExecutionPolicy execution_policy = options.GetExecutionPolicy();
-    const lldb::LanguageType language = options.GetLanguage();
+    lldb::LanguageType language = options.GetLanguage();
     const ResultType desired_type = options.DoesCoerceToId() ? UserExpression::eResultTypeId : UserExpression::eResultTypeAny;
     lldb::ExpressionResults execution_results = lldb::eExpressionSetupError;
     
@@ -515,6 +515,17 @@
     else
         full_prefix = option_prefix;
 
+    // If the language was not specified in the expression command,
+    // set it to the language in the target's properties if
+    // specified, else default to the langage for the frame.
+    if (language == lldb::eLanguageTypeUnknown)
+    {
+        if (target->GetLanguage() != lldb::eLanguageTypeUnknown)
+            language = target->GetLanguage();
+        else if (StackFrame *frame = exe_ctx.GetFramePtr())
+            language = frame->GetLanguage();
+    }
+
     lldb::UserExpressionSP user_expression_sp(target->GetUserExpressionForLanguage (expr_cstr,
                                                                                     full_prefix,
                                                                                     language,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13267.36803.patch
Type: text/x-patch
Size: 2813 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20151007/4f426d53/attachment-0001.bin>


More information about the lldb-commits mailing list