From db17427204bc3d92b44fac9e840ba88483ceb4b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Thu, 26 Nov 2020 10:17:31 +0100 Subject: [PATCH] [kernel] Allows calling builtins Frama_C_show_each & cie in ghost code. --- src/kernel_internals/typing/ghost_accesses.ml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kernel_internals/typing/ghost_accesses.ml b/src/kernel_internals/typing/ghost_accesses.ml index ce796a384de..6af1cadc349 100644 --- a/src/kernel_internals/typing/ghost_accesses.ml +++ b/src/kernel_internals/typing/ghost_accesses.ml @@ -172,16 +172,17 @@ class visitor = object(self) | { enode = Lval ( (Var vi), NoOffset ) } -> Some vi | _ -> None in + let is_ghost vi = vi.vghost || Ast_info.is_frama_c_builtin vi.vname in let failed = match i with | Call(_, fexp, _, _) -> begin match call_varinfo fexp with - | Some fct when not fct.vghost -> + | Some fct when not (is_ghost fct) -> Error.non_ghost_function_call_in_ghost ~current:true () ; true | None -> Error.function_pointer_call ~current:true () ; true | _ -> false end - | Local_init(_, ConsInit(fct, _, _), _) when not fct.vghost -> + | Local_init(_, ConsInit(fct, _, _), _) when not (is_ghost fct) -> Error.non_ghost_function_call_in_ghost ~current:true () ; true | _ -> false in -- GitLab