Skip to content

Commit 8d396f3

Browse files
authored
Merge pull request #3009 from diffblue/goto-interpreter-bugfix
bugfix: array literals are array_exprt, not constant_exprt
2 parents 2e9e73d + ff01bc1 commit 8d396f3

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

src/goto-programs/interpreter.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ exprt interpretert::get_value(
551551
}
552552
else if(real_type.id()==ID_array)
553553
{
554-
constant_exprt result(type);
554+
array_exprt result(to_array_type(real_type));
555555
const exprt &size_expr=static_cast<const exprt &>(type.find(ID_size));
556556

557557
// Get size of array
@@ -603,12 +603,7 @@ exprt interpretert::get_value(
603603
else if(real_type.id() == ID_pointer)
604604
{
605605
if(rhs[integer2size_t(offset)]==0)
606-
{
607-
// NULL pointer
608-
constant_exprt result(type);
609-
result.set_value(ID_NULL);
610-
return result;
611-
}
606+
return null_pointer_exprt(to_pointer_type(real_type)); // NULL pointer
612607

613608
if(rhs[integer2size_t(offset)]<memory.size())
614609
{

0 commit comments

Comments
 (0)