Skip to content

Commit d40b49b

Browse files
committed
Value set dereference: do not throw strings
Use suitable invariants instead.
1 parent 127aa8c commit d40b49b

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/pointer-analysis/value_set_dereference.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,9 @@ exprt value_set_dereferencet::dereference(
142142
const exprt &pointer,
143143
bool display_points_to_sets)
144144
{
145-
if(pointer.type().id()!=ID_pointer)
146-
throw "dereference expected pointer type, but got "+
147-
pointer.type().pretty();
145+
PRECONDITION_WITH_DIAGNOSTICS(
146+
pointer.type().id() == ID_pointer,
147+
"dereference expected pointer type, but got " + pointer.type().pretty());
148148

149149
// we may get ifs due to recursive calls
150150
if(pointer.id()==ID_if)
@@ -465,8 +465,9 @@ value_set_dereferencet::valuet value_set_dereferencet::build_reference_to(
465465
return valuet();
466466
}
467467

468-
if(what.id()!=ID_object_descriptor)
469-
throw "unknown points-to: "+what.id_string();
468+
PRECONDITION_WITH_DIAGNOSTICS(
469+
what.id() == ID_object_descriptor,
470+
"unknown points-to: " + what.id_string());
470471

471472
const object_descriptor_exprt &o=to_object_descriptor_expr(what);
472473

0 commit comments

Comments
 (0)