Modified CommandObjectExpression::EvaluateExpression() so that it takes an
additional (ComandReturnObject *) result parameter (default to NULL) and does
the right thing in setting the result status.

Also removed used variable ast_context.

llvm-svn: 110992
diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp
index 6d2ffd9..12e99e2 100644
--- a/lldb/source/Commands/CommandObjectExpression.cpp
+++ b/lldb/source/Commands/CommandObjectExpression.cpp
@@ -189,10 +189,11 @@
 }
 
 bool
-CommandObjectExpression::EvaluateExpression (const char *expr, bool bare, Stream &output_stream, Stream &error_stream)
+CommandObjectExpression::EvaluateExpression (const char *expr, bool bare, Stream &output_stream, Stream &error_stream,
+                                             CommandReturnObject *result)
 {
     Log *log = lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS);
-    
+
     ////////////////////////////////////
     // Set up the target and compiler
     //
@@ -251,7 +252,6 @@
     bool success;
     bool canInterpret = false;
     
-    clang::ASTContext *ast_context = clang_expr.GetASTContext ();
     ClangPersistentVariable *expr_result = 0;
     Error expr_error;
     
@@ -382,21 +382,27 @@
     {
         StreamString ss;
         
-        Error err = expr_result->Print (ss, 
-                                        m_exe_ctx, 
-                                        m_options.format,
-                                        m_options.show_types,
-                                        m_options.show_summary,
-                                        m_options.debug);
+        Error rc = expr_result->Print (ss, 
+                                       m_exe_ctx, 
+                                       m_options.format,
+                                       m_options.show_types,
+                                       m_options.show_summary,
+                                       m_options.debug);
         
-        if (err.Success())
-            output_stream.PutCString(ss.GetString().c_str());
-        else
-            error_stream.Printf ("Couldn't print result : %s\n", err.AsCString("unknown error"));
+        if (rc.Fail()) {
+            error_stream.Printf ("Couldn't print result : %s\n", rc.AsCString());
+            return false;
+        }
+
+        output_stream.PutCString(ss.GetString().c_str());
+        if (result)
+            result->SetStatus (eReturnStatusSuccessFinishResult);
     }
     else
     {
         error_stream.Printf ("Expression produced no result\n");
+        if (result)
+            result->SetStatus (eReturnStatusSuccessFinishNoResult);
     }
         
     return true;
@@ -482,7 +488,11 @@
     if (expr == NULL)
         expr = command;
     
-    return EvaluateExpression (expr, false, result.GetOutputStream(), result.GetErrorStream());
+    if (EvaluateExpression (expr, false, result.GetOutputStream(), result.GetErrorStream(), &result))
+        return true;
+
+    result.SetStatus (eReturnStatusFailed);
+    return false;
 }
 
 lldb::OptionDefinition