summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/UserExpression.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2018-10-16 21:58:40 +0000
committerJim Ingham <jingham@apple.com>2018-10-16 21:58:40 +0000
commitb1ecc3cac29bdae5469e9610a1ff66f8531a503c (patch)
tree751f36f01bfa8eda4e6eb963c57fd0eb8f46d1f9 /lldb/source/Expression/UserExpression.cpp
parentd33f6e73e148b0a257facb81f100b1e731e0c910 (diff)
downloadbcm5719-llvm-b1ecc3cac29bdae5469e9610a1ff66f8531a503c.tar.gz
bcm5719-llvm-b1ecc3cac29bdae5469e9610a1ff66f8531a503c.zip
Return a named error in the result object of an expression with no result
Before we returned an error that was not exposed in the SB API and no useful error message. This change returns eExpressionProducedNoResult and an appropriate error string. <rdar://problem/44539514> Differential Revision: https://reviews.llvm.org/D53309 llvm-svn: 344647
Diffstat (limited to 'lldb/source/Expression/UserExpression.cpp')
-rw-r--r--lldb/source/Expression/UserExpression.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lldb/source/Expression/UserExpression.cpp b/lldb/source/Expression/UserExpression.cpp
index 34945fdcbfa..1477bbdb660 100644
--- a/lldb/source/Expression/UserExpression.cpp
+++ b/lldb/source/Expression/UserExpression.cpp
@@ -151,6 +151,9 @@ lldb::ExpressionResults UserExpression::Evaluate(
? UserExpression::eResultTypeId
: UserExpression::eResultTypeAny;
lldb::ExpressionResults execution_results = lldb::eExpressionSetupError;
+
+ static const char *no_result_error = "Expression completed successfully "
+ "but had no result";
Target *target = exe_ctx.GetTargetPtr();
if (!target) {
@@ -304,7 +307,8 @@ lldb::ExpressionResults UserExpression::Evaluate(
error.SetExpressionError(lldb::eExpressionSetupError,
"expression needed to run but couldn't");
} else if (execution_policy == eExecutionPolicyTopLevel) {
- error.SetError(UserExpression::kNoResult, lldb::eErrorTypeGeneric);
+ error.SetExpressionError(lldb::eExpressionProducedNoResult,
+ no_result_error);
return lldb::eExpressionCompleted;
} else {
if (options.InvokeCancelCallback(lldb::eExpressionEvaluationExecution)) {
@@ -349,7 +353,8 @@ lldb::ExpressionResults UserExpression::Evaluate(
log->Printf("== [UserExpression::Evaluate] Execution completed "
"normally with no result ==");
- error.SetError(UserExpression::kNoResult, lldb::eErrorTypeGeneric);
+ error.SetExpressionError(lldb::eExpressionProducedNoResult,
+ no_result_error);
}
}
}
OpenPOWER on IntegriCloud