summaryrefslogtreecommitdiffstats
path: root/lldb/source/Symbol/ClangASTContext.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/ClangASTContext.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/ClangASTContext.cpp')
-rw-r--r--lldb/source/Symbol/ClangASTContext.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp
index 11e587c1061..3716da82cd3 100644
--- a/lldb/source/Symbol/ClangASTContext.cpp
+++ b/lldb/source/Symbol/ClangASTContext.cpp
@@ -5684,7 +5684,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
uint32_t &child_bitfield_bit_offset,
bool &child_is_base_class,
bool &child_is_deref_of_parent,
- ValueObject *valobj)
+ ValueObject *valobj,
+ uint64_t &language_flags)
{
if (!type)
return CompilerType();
@@ -5694,6 +5695,7 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_size = 0;
child_bitfield_bit_offset = 0;
child_is_base_class = false;
+ language_flags = 0;
const bool idx_is_valid = idx < GetNumChildren (type, omit_empty_base_classes);
uint32_t bit_offset;
@@ -6004,7 +6006,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_offset,
child_is_base_class,
tmp_child_is_deref_of_parent,
- valobj);
+ valobj,
+ language_flags);
}
else
{
@@ -6095,7 +6098,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_offset,
child_is_base_class,
tmp_child_is_deref_of_parent,
- valobj);
+ valobj,
+ language_flags);
}
else
{
@@ -6141,7 +6145,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_offset,
child_is_base_class,
tmp_child_is_deref_of_parent,
- valobj);
+ valobj,
+ language_flags);
}
else
{
@@ -6178,7 +6183,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_offset,
child_is_base_class,
child_is_deref_of_parent,
- valobj);
+ valobj,
+ language_flags);
}
break;
@@ -6197,7 +6203,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_offset,
child_is_base_class,
child_is_deref_of_parent,
- valobj);
+ valobj,
+ language_flags);
}
case clang::Type::Paren:
@@ -6215,7 +6222,8 @@ ClangASTContext::GetChildCompilerTypeAtIndex (lldb::opaque_compiler_type_t type,
child_bitfield_bit_offset,
child_is_base_class,
child_is_deref_of_parent,
- valobj);
+ valobj,
+ language_flags);
}
OpenPOWER on IntegriCloud