summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py11
-rw-r--r--lldb/source/Commands/CommandObjectExpression.cpp3
2 files changed, 12 insertions, 2 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py b/lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py
index a472a014cee..418c5325ad0 100644
--- a/lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py
+++ b/lldb/packages/Python/lldbsuite/test/expression_command/fixits/TestFixIts.py
@@ -23,11 +23,18 @@ class ExprCommandWithFixits(TestBase):
self.main_source_spec = lldb.SBFileSpec(self.main_source)
@skipUnlessDarwin
- def test(self):
- """Test calling a function that throws and ObjC exception."""
+ def test_with_target(self):
+ """Test calling expressions with errors that can be fixed by the FixIts."""
self.build()
self.try_expressions()
+ def test_with_dummy_target(self):
+ """Test calling expressions in the dummy target with errors that can be fixed by the FixIts."""
+ ret_val = lldb.SBCommandReturnObject()
+ result = self.dbg.GetCommandInterpreter().HandleCommand("expression ((1 << 16) - 1))", ret_val)
+ self.assertEqual(result, lldb.eReturnStatusSuccessFinishResult, "The expression was successful.")
+ self.assertTrue("Fix-it applied" in ret_val.GetError(), "Found the applied FixIt.")
+
def try_expressions(self):
"""Test calling expressions with errors that can be fixed by the FixIts."""
exe_name = "a.out"
diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp
index 56aae93a93f..ba477cd5f4c 100644
--- a/lldb/source/Commands/CommandObjectExpression.cpp
+++ b/lldb/source/Commands/CommandObjectExpression.cpp
@@ -614,6 +614,9 @@ bool CommandObjectExpression::DoExecute(const char *command,
if (EvaluateExpression(expr, &(result.GetOutputStream()),
&(result.GetErrorStream()), &result)) {
Target *target = m_interpreter.GetExecutionContext().GetTargetPtr();
+ if (!target)
+ target = GetDummyTarget();
+
if (!m_fixed_expression.empty() && target->GetEnableNotifyAboutFixIts()) {
CommandHistory &history = m_interpreter.GetCommandHistory();
// FIXME: Can we figure out what the user actually typed (e.g. some alias
OpenPOWER on IntegriCloud