diff options
author | Enrico Granata <egranata@apple.com> | 2015-11-09 19:27:34 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-11-09 19:27:34 +0000 |
commit | dc62ffd37b8852e0a4d2bcd2b6373aa60ac9f4f1 (patch) | |
tree | 6e6e7c2acd1392344af26d921131b4a668f7cedb /lldb/source/Symbol/GoASTContext.cpp | |
parent | 776e59b0fe069b8dc4fa1d97f44c1191bcb46a6d (diff) | |
download | bcm5719-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.cpp | 7 |
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(); } |