Skip to content

Commit 6cd0fb3

Browse files
authored
Merge pull request #3638 from diffblue/smt2-member-bits
smt2 backend: member operator for non-byte offsets
2 parents 6538ab2 + 75dd8ba commit 6cd0fb3

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

scripts/delete_failing_smt2_solver_tests

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
cd regression/cbmc
44
rm Anonymous_Struct3/test.desc
55
rm Array_operations1/test.desc
6-
rm Bitfields1/test.desc
76
rm Bitfields3/test.desc
87
rm Empty_struct1/test.desc
98
rm Endianness4/test.desc

src/solvers/smt2/smt2_conv.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3848,14 +3848,14 @@ void smt2_convt::convert_member(const member_exprt &expr)
38483848
else
38493849
{
38503850
// we extract
3851-
std::size_t member_width=boolbv_width(expr.type());
3852-
const auto member_offset = ::member_offset(struct_type, name, ns);
3851+
const std::size_t member_width = boolbv_width(expr.type());
3852+
const auto member_offset = member_offset_bits(struct_type, name, ns);
38533853

38543854
CHECK_RETURN_WITH_DIAGNOSTICS(
38553855
member_offset.has_value(), "failed to get struct member offset");
38563856

3857-
out << "((_ extract " << ((*member_offset) * 8 + member_width - 1) << " "
3858-
<< (*member_offset) * 8 << ") ";
3857+
out << "((_ extract " << (member_offset.value() + member_width - 1) << " "
3858+
<< member_offset.value() << ") ";
38593859
convert_expr(struct_op);
38603860
out << ")";
38613861
}

0 commit comments

Comments
 (0)