19 return Tag == llvm::dwarf::Tag::DW_TAG_class_type ||
20 Tag == llvm::dwarf::Tag::DW_TAG_structure_type;
26 const int32_t byte_size,
27 bool is_forward_declaration) {
52 const int32_t byte_size,
bool is_forward_declaration) {
59 is_forward_declaration))
68 while (!done && match && parent_arg_die && parent_pos_die) {
69 const dw_tag_t parent_arg_tag = parent_arg_die.
Tag();
70 const dw_tag_t parent_pos_tag = parent_pos_die.
Tag();
71 if (parent_arg_tag == parent_pos_tag ||
74 switch (parent_arg_tag) {
75 case DW_TAG_class_type:
76 case DW_TAG_structure_type:
77 case DW_TAG_union_type:
78 case DW_TAG_namespace: {
79 const char *parent_arg_die_name = parent_arg_die.
GetName();
80 if (parent_arg_die_name ==
nullptr) {
84 const char *parent_pos_die_name = parent_pos_die.
GetName();
85 if (parent_pos_die_name ==
nullptr ||
86 ((parent_arg_die_name != parent_pos_die_name) &&
87 strcmp(parent_arg_die_name, parent_pos_die_name)))
92 case DW_TAG_compile_unit:
93 case DW_TAG_partial_unit:
100 parent_arg_die = parent_arg_die.
GetParent();
101 parent_pos_die = parent_pos_die.
GetParent();
bool IsStructOrClassTag(llvm::dwarf::Tag Tag)
static bool IsStructOrClassTag(llvm::dwarf::Tag Tag)
static bool IsSizeAndDeclarationMatching(UniqueDWARFASTType const &udt, DWARFDIE const &die, const lldb_private::Declaration &decl, const int32_t byte_size, bool is_forward_declaration)
A class that describes the declaration location of a lldb object.
static bool LanguageIsCPlusPlus(lldb::LanguageType language)
DWARFDebugInfoEntry * m_die
DWARFUnit * GetCU() const
void GetName(Stream &s) const
DWARFDIE GetParent() const
DWARFDebugInfoEntry * GetParent()
static lldb::LanguageType GetLanguage(DWARFUnit &unit)
UniqueDWARFASTType * Find(const DWARFDIE &die, const Declaration &decl, const int32_t byte_size, bool is_forward_declaration)
bool m_is_forward_declaration
Declaration m_declaration
llvm::dwarf::Tag dw_tag_t