method vpredicate = function
| Prel(rel,t1,t2)
when app_term_type isPointerType false t1.term_type
&& not (is_null_term t1 || is_null_term t2
|| is_base_addr t1 || is_base_addr t2) ->
let loc = range_loc t1.term_loc t2.term_loc in
let tsub = {
term_node = TBinOp(MinusPP,t1,t2);
term_type = Ctype theMachine.ptrdiffType;
term_loc = loc;
term_name = [];
} in
let p = Prel(rel,tsub,constant_term loc 0L) in
ChangeDoChildrenPost (p, fun x -> x)
| _ -> DoChildren