Fixed ValueObject::UpdateValueIfNeeded to keep
track of the checksum of the object so we can
track if it is modified.  This fixes a testcase
(test/expression_command/issue_11588) on OS X.

Patch by Enrico Granata.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@223830 91177308-0d34-0410-b5e6-96231b3b80d8
Removed an unnecessary variaable.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@223831 91177308-0d34-0410-b5e6-96231b3b80d8
Extend ValueObject::GetExpressionPath() to do something reasonable for synthetic children

Because of the way they are created, synthetic children cannot (in general) have a sane expression path

A solution to this would be letting the parent front-end generate expression paths for its children
Doing so requires a significant amount of refactoring, and might not always lead to better results (esp. w.r.t. C++ templates)

This commit takes a simpler approach:
- if a synthetic child is of pointer type and it's a target pointer, then emit *((T)value)
- if a synthetic child is a non-pointer, but its location is in the target, then emit *((T*)loadAddr)
- if a synthetic child has a value, emit ((T)value)
- else, don't emit anything

Fixes rdar://18442386



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@223836 91177308-0d34-0410-b5e6-96231b3b80d8