From 34e59f10de040ee85ebf9530fee232465f992cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Wed, 27 Mar 2024 15:29:30 +0100 Subject: [PATCH] [Eva] Fixes reduction on the negation of ACSL predicate valid_string. --- src/plugins/eva/legacy/eval_terms.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/eva/legacy/eval_terms.ml b/src/plugins/eva/legacy/eval_terms.ml index 2943a97ab7d..ab2f98468fb 100644 --- a/src/plugins/eva/legacy/eval_terms.ml +++ b/src/plugins/eva/legacy/eval_terms.ml @@ -2046,6 +2046,8 @@ and reduce_by_valid_string ~alarm_mode env positive ~wide ~access arg = let aux base offset acc = let value = Cvalue.V.inject base offset in let v, alarms = apply_logic_builtin wrapper env [value] in + (* Beware of not removing const strings on the negation of \valid_string. *) + let alarms = alarms || (access = Write && Base.is_read_only base) in if (positive && Cvalue.V.is_bottom v) || (not positive && not alarms) then acc -- GitLab