@@ -365,7 +365,8 @@ bool ai_baset::visit(
365
365
// initialize state, if necessary
366
366
get_state (to_l);
367
367
368
- new_values.transform (l, to_l, *this , ns);
368
+ new_values.transform (
369
+ l, to_l, *this , ns, ai_domain_baset::edge_typet::FUNCTION_LOCAL);
369
370
370
371
if (merge (new_values, l, to_l))
371
372
have_new_values=true ;
@@ -398,7 +399,8 @@ bool ai_baset::do_function_call(
398
399
{
399
400
// if we don't have a body, we just do an edige call -> return
400
401
std::unique_ptr<statet> tmp_state (make_temporary_state (get_state (l_call)));
401
- tmp_state->transform (l_call, l_return, *this , ns);
402
+ tmp_state->transform (
403
+ l_call, l_return, *this , ns, ai_domain_baset::edge_typet::FUNCTION_LOCAL);
402
404
403
405
return merge (*tmp_state, l_call, l_return);
404
406
}
@@ -415,7 +417,8 @@ bool ai_baset::do_function_call(
415
417
416
418
// do the edge from the call site to the beginning of the function
417
419
std::unique_ptr<statet> tmp_state (make_temporary_state (get_state (l_call)));
418
- tmp_state->transform (l_call, l_begin, *this , ns);
420
+ tmp_state->transform (
421
+ l_call, l_begin, *this , ns, ai_domain_baset::edge_typet::CALL);
419
422
420
423
bool new_data=false ;
421
424
@@ -442,7 +445,8 @@ bool ai_baset::do_function_call(
442
445
return false ; // function exit point not reachable
443
446
444
447
std::unique_ptr<statet> tmp_state (make_temporary_state (end_state));
445
- tmp_state->transform (l_end, l_return, *this , ns);
448
+ tmp_state->transform (
449
+ l_end, l_return, *this , ns, ai_domain_baset::edge_typet::RETURN);
446
450
447
451
// Propagate those
448
452
return merge (*tmp_state, l_end, l_return);
0 commit comments