@ -260,7 +260,9 @@ let tmp_prefix = "0$?%__sil_tmp";
let is_frontend_tmp pvar = > {
/* Check whether the program variable is a temporary one generated by Sawja, javac, or some other
bytecode / name generation pass . valid java identifiers cannot contain ` $ ` * /
let is_bytecode_tmp name = > String . contains name '$' | | String . is_prefix prefix :: " CatchVar " name ;
let is_bytecode_tmp name = >
String . contains name '$' && not ( String . contains name '_' ) | |
String . is_prefix prefix :: " CatchVar " name ;
/* Check whether the program variable is generated by [mk_tmp] */
let is_sil_tmp name = > String . is_prefix prefix :: tmp_prefix name ;
let name = to_string pvar ;
@ -272,6 +274,13 @@ let is_frontend_tmp pvar => {
)
} ;
/* in Sawja, variables like $T0_18 are temporaries, but not SSA vars. */
let is_ssa_frontend_tmp pvar = >
is_frontend_tmp pvar && {
let name = to_string pvar ;
not ( String . contains name '_' && String . contains name '$' )
} ;
/* * Turn an ordinary program variable into a callee program variable */
let to_callee pname pvar = >