@@ -285,14 +285,22 @@ void graphml_witnesst::operator()(const goto_tracet &goto_trace)
285
285
{
286
286
irep_idt identifier=it->lhs_object .get_identifier ();
287
287
288
- xmlt &val=edge.new_element (" data" );
289
- val.set_attribute (" key" , " assumption" );
290
- code_assignt assign (it->lhs_object , it->lhs_object_value );
291
- val.data =convert_assign_rec (identifier, assign);
292
-
293
- xmlt &val_s=edge.new_element (" data" );
294
- val_s.set_attribute (" key" , " assumption.scope" );
295
- val_s.data =id2string (it->pc ->source_location .get_function ());
288
+ if (id2string (it->lhs_object .get_identifier ()).find (' $' )==
289
+ std::string::npos &&
290
+ (!it->lhs_object_value .is_constant () ||
291
+ !it->lhs_object_value .has_operands () ||
292
+ !has_prefix (id2string (it->lhs_object_value .op0 ().get (ID_value)),
293
+ " INVALID-" )))
294
+ {
295
+ xmlt &val=edge.new_element (" data" );
296
+ val.set_attribute (" key" , " assumption" );
297
+ code_assignt assign (it->lhs_object , it->lhs_object_value );
298
+ val.data =convert_assign_rec (identifier, assign);
299
+
300
+ xmlt &val_s=edge.new_element (" data" );
301
+ val_s.set_attribute (" key" , " assumption.scope" );
302
+ val_s.data =id2string (it->pc ->source_location .get_function ());
303
+ }
296
304
}
297
305
else if (it->type ==goto_trace_stept::GOTO &&
298
306
it->pc ->is_goto ())
0 commit comments