Skip to content

Commit 6ff62a7

Browse files
authored
Merge pull request #7739 from tautschnig/feature/fs-typecast
Field sensitivity: also rewrite byte extract to type casts
2 parents 453eb65 + 003b7c7 commit 6ff62a7

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
main.c
3+
--enforce-contract update _ --program-only
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
--
7+
^\(\d+\) guard#\d+ == .*byte_extract
8+
--
9+
Confirms that field sensitivity can resolve pointer byte extracts to type casts.

src/goto-symex/field_sensitivity.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,20 @@ exprt field_sensitivityt::apply(
123123
else
124124
return apply(ns, state, std::move(tmp), write);
125125
}
126+
else if(
127+
recursive_member.has_value() && recursive_member->id() == ID_typecast)
128+
{
129+
if(was_l2)
130+
{
131+
return apply(
132+
ns,
133+
state,
134+
state.rename(std::move(*recursive_member), ns).get(),
135+
write);
136+
}
137+
else
138+
return apply(ns, state, std::move(*recursive_member), write);
139+
}
126140
}
127141
}
128142
}

0 commit comments

Comments
 (0)