summaryrefslogtreecommitdiffstats
path: root/lldb/source/Symbol/GoASTContext.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2015-11-09 19:27:34 +0000
committerEnrico Granata <egranata@apple.com>2015-11-09 19:27:34 +0000
commitdc62ffd37b8852e0a4d2bcd2b6373aa60ac9f4f1 (patch)
tree6e6e7c2acd1392344af26d921131b4a668f7cedb /lldb/source/Symbol/GoASTContext.cpp
parent776e59b0fe069b8dc4fa1d97f44c1191bcb46a6d (diff)
downloadbcm5719-llvm-dc62ffd37b8852e0a4d2bcd2b6373aa60ac9f4f1.tar.gz
bcm5719-llvm-dc62ffd37b8852e0a4d2bcd2b6373aa60ac9f4f1.zip
Add a way for source languages to "mark" ValueObjects with language-specific flags
In this way, when a language needs to tell itself things that are not bound to a type but to a value (imagine a base-class relation, this is not about the type, but about the ValueObject), it can do so in a clean and general fashion The interpretation of the values of the flags is, of course, up to the language that owns the value (the value object's runtime language, that is) llvm-svn: 252503
Diffstat (limited to 'lldb/source/Symbol/GoASTContext.cpp')
-rw-r--r--lldb/source/Symbol/GoASTContext.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lldb/source/Symbol/GoASTContext.cpp b/lldb/source/Symbol/GoASTContext.cpp
index 46bb7d3c0fc..4ba51f7580d 100644
--- a/lldb/source/Symbol/GoASTContext.cpp
+++ b/lldb/source/Symbol/GoASTContext.cpp
@@ -1134,7 +1134,7 @@ GoASTContext::GetChildCompilerTypeAtIndex(lldb::opaque_compiler_type_t type, Exe
bool omit_empty_base_classes, bool ignore_array_bounds, std::string &child_name,
uint32_t &child_byte_size, int32_t &child_byte_offset,
uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset,
- bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj)
+ bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags)
{
child_name.clear();
child_byte_size = 0;
@@ -1143,6 +1143,7 @@ GoASTContext::GetChildCompilerTypeAtIndex(lldb::opaque_compiler_type_t type, Exe
child_bitfield_bit_offset = 0;
child_is_base_class = false;
child_is_deref_of_parent = false;
+ language_flags = 0;
if (!type || !GetCompleteType(type))
return CompilerType();
@@ -1167,7 +1168,7 @@ GoASTContext::GetChildCompilerTypeAtIndex(lldb::opaque_compiler_type_t type, Exe
return pointee.GetChildCompilerTypeAtIndex(exe_ctx, idx, transparent_pointers, omit_empty_base_classes,
ignore_array_bounds, child_name, child_byte_size, child_byte_offset,
child_bitfield_bit_size, child_bitfield_bit_offset,
- child_is_base_class, tmp_child_is_deref_of_parent, valobj);
+ child_is_base_class, tmp_child_is_deref_of_parent, valobj, language_flags);
}
else
{
@@ -1209,7 +1210,7 @@ GoASTContext::GetChildCompilerTypeAtIndex(lldb::opaque_compiler_type_t type, Exe
return t->GetElementType().GetChildCompilerTypeAtIndex(
exe_ctx, idx, transparent_pointers, omit_empty_base_classes, ignore_array_bounds, child_name,
child_byte_size, child_byte_offset, child_bitfield_bit_size, child_bitfield_bit_offset, child_is_base_class,
- child_is_deref_of_parent, valobj);
+ child_is_deref_of_parent, valobj, language_flags);
}
return CompilerType();
}
OpenPOWER on IntegriCloud