File tree 1 file changed +4
-9
lines changed
1 file changed +4
-9
lines changed Original file line number Diff line number Diff line change @@ -125,20 +125,15 @@ static void build_object_descriptor_rec(
125
125
{
126
126
const member_exprt &member=to_member_expr (expr);
127
127
const exprt &struct_op=member.struct_op ();
128
- const typet &struct_type=ns.follow (struct_op.type ());
129
128
130
129
build_object_descriptor_rec (ns, struct_op, dest);
131
130
132
- if (struct_type.id ()==ID_union)
133
- return ;
134
-
135
- mp_integer offset=
136
- member_offset (to_struct_type (struct_type),
137
- member.get_component_name (), ns);
138
- assert (offset>=0 );
131
+ exprt offset=member_offset_expr (member, ns);
132
+ assert (offset.is_not_nil ());
139
133
140
134
dest.offset ()=
141
- plus_exprt (dest.offset (), from_integer (offset, index_type));
135
+ plus_exprt (dest.offset (),
136
+ typecast_exprt (offset, index_type));
142
137
}
143
138
else if (expr.id ()==ID_byte_extract_little_endian ||
144
139
expr.id ()==ID_byte_extract_big_endian)
You can’t perform that action at this time.
0 commit comments