diff options
Diffstat (limited to 'lldb')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp index 1090e15370dd..7f67d25f58ae 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -2880,9 +2880,8 @@ void DWARFASTParserClang::ParseSingleMember( if (detect_unnamed_bitfields) { std::optional<FieldInfo> unnamed_field_info; - uint64_t last_field_end = 0; - - last_field_end = last_field_info.bit_offset + last_field_info.bit_size; + uint64_t last_field_end = + last_field_info.bit_offset + last_field_info.bit_size; if (!last_field_info.IsBitfield()) { // The last field was not a bit-field... @@ -2902,10 +2901,8 @@ void DWARFASTParserClang::ParseSingleMember( // indeed an unnamed bit-field. We currently do not have the // machinary to track the offset of the last field of classes we // have seen before, so we are not handling this case. - if (this_field_info.bit_offset != last_field_end && - this_field_info.bit_offset > last_field_end && - !(last_field_info.bit_offset == 0 && - last_field_info.bit_size == 0 && + if (this_field_info.bit_offset > last_field_end && + !(last_field_info.bit_offset == 0 && last_field_info.bit_size == 0 && layout_info.base_offsets.size() != 0)) { unnamed_field_info = FieldInfo{}; unnamed_field_info->bit_size = |