File tree 1 file changed +8
-3
lines changed
1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -47,10 +47,14 @@ bvt boolbvt::convert_member(const member_exprt &expr)
47
47
{
48
48
const bvt &compound_bv = convert_bv (expr.compound ());
49
49
50
- if (expr.compound ().type ().id () == ID_struct_tag)
50
+ const typet &compound_type = expr.compound ().type ();
51
+
52
+ if (compound_type.id () == ID_struct_tag || compound_type.id () == ID_struct)
51
53
{
52
54
const struct_typet &struct_op_type =
53
- ns.follow_tag (to_struct_tag_type (expr.compound ().type ()));
55
+ compound_type.id () == ID_struct_tag
56
+ ? ns.follow_tag (to_struct_tag_type (compound_type))
57
+ : to_struct_type (compound_type);
54
58
55
59
const auto &member_bits =
56
60
bv_width.get_member (struct_op_type, expr.get_component_name ());
@@ -66,7 +70,8 @@ bvt boolbvt::convert_member(const member_exprt &expr)
66
70
}
67
71
else
68
72
{
69
- PRECONDITION (expr.compound ().type ().id () == ID_union_tag);
73
+ PRECONDITION (
74
+ compound_type.id () == ID_union_tag || compound_type.id () == ID_union);
70
75
return convert_member_union (expr, compound_bv, *this , ns);
71
76
}
72
77
}
You can’t perform that action at this time.
0 commit comments