Skip to content

Commit cbef420

Browse files
author
Daniel Kroening
authored
Merge pull request #4888 from diffblue/root_object_opX
better typing in object_descriptor_exprt::root_object()
2 parents 6dc222f + 54a1c67 commit cbef420

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/util/std_expr.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,14 @@ const exprt &object_descriptor_exprt::root_object() const
218218
{
219219
const exprt *p = &object();
220220

221-
while(p->id() == ID_member || p->id() == ID_index)
221+
while(true)
222222
{
223-
DATA_INVARIANT(
224-
p->has_operands(), "member and index expressions have operands");
225-
p = &p->op0();
223+
if(p->id() == ID_member)
224+
p = &to_member_expr(*p).compound();
225+
else if(p->id() == ID_index)
226+
p = &to_index_expr(*p).array();
227+
else
228+
break;
226229
}
227230

228231
return *p;

0 commit comments

Comments
 (0)