@@ -25,7 +25,7 @@ using namespace lldb_private::plugin::dwarf;
25
25
void DWARFFormValue::Clear () {
26
26
m_unit = nullptr ;
27
27
m_form = dw_form_t (0 );
28
- m_value = ValueTypeTag ();
28
+ m_value = ValueType ();
29
29
}
30
30
31
31
bool DWARFFormValue::ExtractValue (const DWARFDataExtractor &data,
@@ -44,68 +44,68 @@ bool DWARFFormValue::ExtractValue(const DWARFDataExtractor &data,
44
44
switch (m_form) {
45
45
case DW_FORM_addr:
46
46
assert (m_unit);
47
- m_value.value . uval =
47
+ m_value.uval =
48
48
data.GetMaxU64 (offset_ptr, DWARFUnit::GetAddressByteSize (m_unit));
49
49
break ;
50
50
case DW_FORM_block1:
51
- m_value.value . uval = data.GetU8 (offset_ptr);
51
+ m_value.uval = data.GetU8 (offset_ptr);
52
52
is_block = true ;
53
53
break ;
54
54
case DW_FORM_block2:
55
- m_value.value . uval = data.GetU16 (offset_ptr);
55
+ m_value.uval = data.GetU16 (offset_ptr);
56
56
is_block = true ;
57
57
break ;
58
58
case DW_FORM_block4:
59
- m_value.value . uval = data.GetU32 (offset_ptr);
59
+ m_value.uval = data.GetU32 (offset_ptr);
60
60
is_block = true ;
61
61
break ;
62
62
case DW_FORM_data16:
63
- m_value.value . uval = 16 ;
63
+ m_value.uval = 16 ;
64
64
is_block = true ;
65
65
break ;
66
66
case DW_FORM_exprloc:
67
67
case DW_FORM_block:
68
- m_value.value . uval = data.GetULEB128 (offset_ptr);
68
+ m_value.uval = data.GetULEB128 (offset_ptr);
69
69
is_block = true ;
70
70
break ;
71
71
case DW_FORM_string:
72
- m_value.value . cstr = data.GetCStr (offset_ptr);
72
+ m_value.cstr = data.GetCStr (offset_ptr);
73
73
break ;
74
74
case DW_FORM_sdata:
75
- m_value.value . sval = data.GetSLEB128 (offset_ptr);
75
+ m_value.sval = data.GetSLEB128 (offset_ptr);
76
76
break ;
77
77
case DW_FORM_strp:
78
78
case DW_FORM_line_strp:
79
79
case DW_FORM_sec_offset:
80
- m_value.value . uval = data.GetMaxU64 (offset_ptr, 4 );
80
+ m_value.uval = data.GetMaxU64 (offset_ptr, 4 );
81
81
break ;
82
82
case DW_FORM_addrx1:
83
83
case DW_FORM_strx1:
84
84
case DW_FORM_ref1:
85
85
case DW_FORM_data1:
86
86
case DW_FORM_flag:
87
- m_value.value . uval = data.GetU8 (offset_ptr);
87
+ m_value.uval = data.GetU8 (offset_ptr);
88
88
break ;
89
89
case DW_FORM_addrx2:
90
90
case DW_FORM_strx2:
91
91
case DW_FORM_ref2:
92
92
case DW_FORM_data2:
93
- m_value.value . uval = data.GetU16 (offset_ptr);
93
+ m_value.uval = data.GetU16 (offset_ptr);
94
94
break ;
95
95
case DW_FORM_addrx3:
96
96
case DW_FORM_strx3:
97
- m_value.value . uval = data.GetMaxU64 (offset_ptr, 3 );
97
+ m_value.uval = data.GetMaxU64 (offset_ptr, 3 );
98
98
break ;
99
99
case DW_FORM_addrx4:
100
100
case DW_FORM_strx4:
101
101
case DW_FORM_ref4:
102
102
case DW_FORM_data4:
103
- m_value.value . uval = data.GetU32 (offset_ptr);
103
+ m_value.uval = data.GetU32 (offset_ptr);
104
104
break ;
105
105
case DW_FORM_data8:
106
106
case DW_FORM_ref8:
107
107
case DW_FORM_ref_sig8:
108
- m_value.value . uval = data.GetU64 (offset_ptr);
108
+ m_value.uval = data.GetU64 (offset_ptr);
109
109
break ;
110
110
case DW_FORM_addrx:
111
111
case DW_FORM_loclistx:
@@ -115,32 +115,32 @@ bool DWARFFormValue::ExtractValue(const DWARFDataExtractor &data,
115
115
case DW_FORM_ref_udata:
116
116
case DW_FORM_GNU_str_index:
117
117
case DW_FORM_GNU_addr_index:
118
- m_value.value . uval = data.GetULEB128 (offset_ptr);
118
+ m_value.uval = data.GetULEB128 (offset_ptr);
119
119
break ;
120
120
case DW_FORM_ref_addr:
121
121
assert (m_unit);
122
122
if (m_unit->GetVersion () <= 2 )
123
123
ref_addr_size = m_unit->GetAddressByteSize ();
124
124
else
125
125
ref_addr_size = 4 ;
126
- m_value.value . uval = data.GetMaxU64 (offset_ptr, ref_addr_size);
126
+ m_value.uval = data.GetMaxU64 (offset_ptr, ref_addr_size);
127
127
break ;
128
128
case DW_FORM_indirect:
129
129
m_form = static_cast <dw_form_t >(data.GetULEB128 (offset_ptr));
130
130
indirect = true ;
131
131
break ;
132
132
case DW_FORM_flag_present:
133
- m_value.value . uval = 1 ;
133
+ m_value.uval = 1 ;
134
134
break ;
135
135
default :
136
136
return false ;
137
137
}
138
138
} while (indirect);
139
139
140
140
if (is_block) {
141
- m_value.data = data.PeekData (*offset_ptr, m_value.value . uval );
141
+ m_value.data = data.PeekData (*offset_ptr, m_value.uval );
142
142
if (m_value.data != nullptr ) {
143
- *offset_ptr += m_value.value . uval ;
143
+ *offset_ptr += m_value.uval ;
144
144
}
145
145
}
146
146
@@ -461,23 +461,23 @@ const char *DWARFFormValue::AsCString() const {
461
461
DWARFContext &context = m_unit->GetSymbolFileDWARF ().GetDWARFContext ();
462
462
463
463
if (m_form == DW_FORM_string)
464
- return m_value.value . cstr ;
464
+ return m_value.cstr ;
465
465
if (m_form == DW_FORM_strp)
466
- return context.getOrLoadStrData ().PeekCStr (m_value.value . uval );
466
+ return context.getOrLoadStrData ().PeekCStr (m_value.uval );
467
467
468
468
if (m_form == DW_FORM_GNU_str_index || m_form == DW_FORM_strx ||
469
469
m_form == DW_FORM_strx1 || m_form == DW_FORM_strx2 ||
470
470
m_form == DW_FORM_strx3 || m_form == DW_FORM_strx4) {
471
471
472
472
std::optional<uint64_t > offset =
473
- m_unit->GetStringOffsetSectionItem (m_value.value . uval );
473
+ m_unit->GetStringOffsetSectionItem (m_value.uval );
474
474
if (!offset)
475
475
return nullptr ;
476
476
return context.getOrLoadStrData ().PeekCStr (*offset);
477
477
}
478
478
479
479
if (m_form == DW_FORM_line_strp)
480
- return context.getOrLoadLineStrData ().PeekCStr (m_value.value . uval );
480
+ return context.getOrLoadLineStrData ().PeekCStr (m_value.uval );
481
481
482
482
return nullptr ;
483
483
}
@@ -495,14 +495,14 @@ dw_addr_t DWARFFormValue::Address() const {
495
495
496
496
uint32_t index_size = m_unit->GetAddressByteSize ();
497
497
dw_offset_t addr_base = m_unit->GetAddrBase ();
498
- lldb::offset_t offset = addr_base + m_value.value . uval * index_size;
498
+ lldb::offset_t offset = addr_base + m_value.uval * index_size;
499
499
return symbol_file.GetDWARFContext ().getOrLoadAddrData ().GetMaxU64 (
500
500
&offset, index_size);
501
501
}
502
502
503
503
std::pair<DWARFUnit *, uint64_t >
504
504
DWARFFormValue::ReferencedUnitAndOffset () const {
505
- uint64_t value = m_value.value . uval ;
505
+ uint64_t value = m_value.uval ;
506
506
switch (m_form) {
507
507
case DW_FORM_ref1:
508
508
case DW_FORM_ref2:
@@ -550,7 +550,7 @@ DWARFDIE DWARFFormValue::Reference() const {
550
550
}
551
551
552
552
uint64_t DWARFFormValue::Reference (dw_offset_t base_offset) const {
553
- uint64_t value = m_value.value . uval ;
553
+ uint64_t value = m_value.uval ;
554
554
switch (m_form) {
555
555
case DW_FORM_ref1:
556
556
case DW_FORM_ref2:
0 commit comments