[ValueObject] Do not return address of eValueTypeHostAddress values.

Summary:
This fixes TestRegisterVariables for clang and hence it is enabled in this commit.


Test Plan: dotest.py -C clang -p TestRegisterVariables

Reviewers: clayborg

Reviewed By: clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9421

llvm-svn: 236447
This commit is contained in:
Siva Chandra 2015-05-04 19:43:34 +00:00
parent 4fe30a06b1
commit a3747a9d31
2 changed files with 5 additions and 4 deletions

View File

@ -1821,13 +1821,14 @@ ValueObject::GetAddressOf (bool scalar_is_load_address, AddressType *address_typ
case Value::eValueTypeLoadAddress:
case Value::eValueTypeFileAddress:
case Value::eValueTypeHostAddress:
{
if(address_type)
*address_type = m_value.GetValueAddressType ();
return m_value.GetScalar().ULongLong(LLDB_INVALID_ADDRESS);
}
break;
case Value::eValueTypeHostAddress:
break;
}
if (address_type)
*address_type = eAddressTypeInvalid;
@ -3785,7 +3786,7 @@ ValueObject::AddressOf (Error &error)
const bool scalar_is_load_address = false;
addr_t addr = GetAddressOf (scalar_is_load_address, &address_type);
error.Clear();
if (addr != LLDB_INVALID_ADDRESS)
if (addr != LLDB_INVALID_ADDRESS && address_type != eAddressTypeHost)
{
switch (address_type)
{
@ -3799,7 +3800,6 @@ ValueObject::AddressOf (Error &error)
case eAddressTypeFile:
case eAddressTypeLoad:
case eAddressTypeHost:
{
ClangASTType clang_type = GetClangType();
if (clang_type)
@ -3816,6 +3816,8 @@ ValueObject::AddressOf (Error &error)
}
}
break;
default:
break;
}
}
else

View File

@ -17,7 +17,6 @@ class RegisterVariableTestCase(TestBase):
self.buildDsym()
self.const_variable()
@expectedFailureClang
@dwarf_test
@expectedFailureGcc #xfail to get buildbot green, test failed with gcc4.8.2
def test_with_dwarf_and_run_command(self):