From 271b5b9a3d54886ce6519a18f93d55000ea6e5ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Thu, 2 Apr 2020 12:33:12 +0200 Subject: [PATCH] [Eva] Imprecise builtins for alloca and vla_alloc do not return null. --- src/plugins/value/domains/cvalue/builtins_malloc.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/value/domains/cvalue/builtins_malloc.ml b/src/plugins/value/domains/cvalue/builtins_malloc.ml index 8f3cdbaa2b2..aac96421d2d 100644 --- a/src/plugins/value/domains/cvalue/builtins_malloc.ml +++ b/src/plugins/value/domains/cvalue/builtins_malloc.ml @@ -434,12 +434,12 @@ let alloc_imprecise_weakest_aux region _stack _prefix _sizev state = let ret = V.inject new_base Ival.zero in ret, new_state -let alloc_imprecise_weakest region state actuals = +let alloc_imprecise_weakest ?returns_null region state actuals = match actuals with | [_, _size, _] -> begin let ret, new_state = alloc_imprecise_weakest_aux region [] "" _size state in - let c_values = wrap_fallible_alloc ret state new_state in + let c_values = wrap_fallible_alloc ?returns_null ret state new_state in { Value_types.c_values = c_values ; c_clobbered = Base.SetLattice.bottom; c_cacheable = Value_types.NoCacheCallers; @@ -602,7 +602,7 @@ let () = Builtins.register_builtin ~typ:(fun () -> (Cil.voidPtrType, [Cil.theMachine.Cil.typeOfSizeOf])) let () = Builtins.register_builtin "Frama_C_vla_alloc_imprecise_weakest" - (alloc_imprecise_weakest Base.VLA) + (alloc_imprecise_weakest Base.VLA ~returns_null:false) ~typ:(fun () -> (Cil.voidPtrType, [Cil.theMachine.Cil.typeOfSizeOf])) let () = Builtins.register_builtin ~replace:"alloca" "Frama_C_alloca" @@ -610,7 +610,7 @@ let () = Builtins.register_builtin ~typ:(fun () -> (Cil.voidPtrType, [Cil.theMachine.Cil.typeOfSizeOf])) let () = Builtins.register_builtin "Frama_C_alloca_imprecise_weakest" - (alloc_imprecise_weakest Base.Alloca) + (alloc_imprecise_weakest Base.Alloca ~returns_null:false) ~typ:(fun () -> (Cil.voidPtrType, [Cil.theMachine.Cil.typeOfSizeOf])) (* Equivalent to [alloc_by_stack], but for [calloc]. *) -- GitLab