Modified the expression parser to only try to
write to registers if they were modified in the
expression. This eliminates spurious errors if
the register can't be written to but the
expression didn't write to it anyway.
Also improved error handling for the materializer
to make "couldn't materialize struct" errors more
informative.
<rdar://problem/14322579>
llvm-svn: 186228
diff --git a/lldb/source/Expression/ClangUserExpression.cpp b/lldb/source/Expression/ClangUserExpression.cpp
index 18f7a8d..7f09f6f 100644
--- a/lldb/source/Expression/ClangUserExpression.cpp
+++ b/lldb/source/Expression/ClangUserExpression.cpp
@@ -753,8 +753,6 @@
lldb::addr_t function_stack_bottom,
lldb::addr_t function_stack_top)
{
- Error expr_error;
-
Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
if (log)
@@ -762,7 +760,7 @@
if (!m_dematerializer_sp)
{
- error_stream.Printf ("Couldn't dematerialize struct : no dematerializer is present");
+ error_stream.Printf ("Couldn't apply expression side effects : no dematerializer is present");
return false;
}
@@ -772,7 +770,7 @@
if (!dematerialize_error.Success())
{
- error_stream.Printf ("Couldn't dematerialize struct : %s\n", expr_error.AsCString("unknown error"));
+ error_stream.Printf ("Couldn't apply expression side effects : %s\n", dematerialize_error.AsCString("unknown error"));
return false;
}
@@ -937,7 +935,6 @@
}
else
{
- error_stream.Printf("Errored out in %s: Couldn't FinalizeJITExpression", __FUNCTION__);
return eExecutionSetupError;
}
}