Add the ability to capture the return value in a thread's stop info, and print it
as part of the thread format output.
Currently this is only done for the ThreadPlanStepOut.
Add a convenience API ABI::GetReturnValueObject.
Change the ValueObject::EvaluationPoint to BE an ExecutionContextScope, rather than
trying to hand out one of its subsidiary object's pointers.  That way this will always
be good.

llvm-svn: 146806
diff --git a/lldb/source/Core/ValueObjectConstResult.cpp b/lldb/source/Core/ValueObjectConstResult.cpp
index fa1503f..950d334 100644
--- a/lldb/source/Core/ValueObjectConstResult.cpp
+++ b/lldb/source/Core/ValueObjectConstResult.cpp
@@ -130,6 +130,15 @@
                                         address))->GetSP();
 }
 
+ValueObjectSP
+ValueObjectConstResult::Create (ExecutionContextScope *exe_scope,
+        clang::ASTContext *clang_ast,
+        Value &value,
+        const ConstString &name)
+{
+    return (new ValueObjectConstResult (exe_scope, clang_ast, value, name))->GetSP();
+}
+
 ValueObjectConstResult::ValueObjectConstResult
 (
     ExecutionContextScope *exe_scope,
@@ -239,6 +248,21 @@
     SetIsConstant ();
 }
 
+ValueObjectConstResult::ValueObjectConstResult (
+    ExecutionContextScope *exe_scope,
+    clang::ASTContext *clang_ast,
+    const Value &value,
+    const ConstString &name) :
+    ValueObject (exe_scope),
+    m_type_name (),
+    m_byte_size (0),
+    m_clang_ast (clang_ast),
+    m_impl(this)
+{
+    m_value = value;
+    m_value.GetData(m_data);
+}
+
 ValueObjectConstResult::~ValueObjectConstResult()
 {
 }