From c76015a86c1f3b44bccf41c121aeddcb8117edb2 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Wed, 21 Feb 2024 19:28:54 +0100 Subject: [PATCH] [kernel] improve now-unified TCast handling --- src/kernel_services/ast_queries/cil.ml | 6 +++--- src/kernel_services/ast_queries/logic_utils.ml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index 4a40c63ae67..5d7b28b0c82 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -3187,14 +3187,14 @@ let isZero (e: exp) : bool = let rec isLogicZero t = match t.term_node with | TConst (Integer (n,_)) -> Integer.equal n Integer.zero | TConst (LChr c) -> Char.code c = 0 - | TCast(false, _, t) -> isLogicZero t + | TCast(_, _, t) -> isLogicZero t | _ -> false let isLogicNull t = isLogicZero t || (let rec aux t = match t.term_node with | Tnull -> true - | TCast(false,_, t) -> aux t + | TCast(_,_, t) -> aux t | _ -> false in aux t) @@ -3462,7 +3462,7 @@ let rec stripCasts (e: exp) = match e.enode with CastE(_, e') -> stripCasts e' | _ -> e let rec stripTermCasts (t: term) = - match t.term_node with TCast(false,_, t') -> stripTermCasts t' | _ -> t + match t.term_node with TCast(_,_, t') -> stripTermCasts t' | _ -> t (* Separate out the storage-modifier name attributes *) let separateStorageModifiers (al: attribute list) = diff --git a/src/kernel_services/ast_queries/logic_utils.ml b/src/kernel_services/ast_queries/logic_utils.ml index 3dcd4013e17..5a8bd35caa3 100644 --- a/src/kernel_services/ast_queries/logic_utils.ml +++ b/src/kernel_services/ast_queries/logic_utils.ml @@ -1747,6 +1747,8 @@ let rec compare_term t1 t2 = if res = 0 then compare_term t1 t2 else res | TCast (false,_,_), _ -> 1 | _, TCast (false,_,_) -> -1 + | TCast(true,_,_), _ -> 1 + | _, TCast(true,_,_) -> -1 | TAddrOf l1, TAddrOf l2 -> compare_tlval l1 l2 | TAddrOf _, _ -> 1 | _, TAddrOf _ -> -1 @@ -1835,8 +1837,6 @@ let rec compare_term t1 t2 = | Tlet(d1,b1), Tlet(d2,b2) -> let res = compare_logic_info d1 d2 in if res = 0 then compare_term b1 b2 else res - | Tlet _, _ -> 1 - | _, Tlet _ -> -1 and compare_logic_info l1 l2 = let res = compare_logic_signature l1 l2 in -- GitLab