From ac4373cce47479dc97ec0021e9932bebb3a30cb6 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Thu, 26 Mar 2020 14:40:54 +0100 Subject: [PATCH] [printer] special treatment for __fc_sig_* following their new declaration --- src/kernel_services/ast_printing/cil_printer.ml | 7 +++++++ tests/value/oracle/invalid_pointer.0.res.oracle | 2 +- tests/value/oracle/invalid_pointer.1.res.oracle | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml index 186378fef09..e1642d5c48b 100644 --- a/src/kernel_services/ast_printing/cil_printer.ml +++ b/src/kernel_services/ast_printing/cil_printer.ml @@ -54,6 +54,10 @@ module Extensions = struct end let set_extension_handler = Extensions.set_handler +(* for specific builtin functions that act as placeholder for C macros. + For each name f below, pretty-printer will replace f and &f with the + corresponding name. Be sure to keep the list in sync with share/libc. +*) let rename_builtins = Datatype.String.Hashtbl.create 17 let () = @@ -781,6 +785,9 @@ class cil_printer () = object (self) Neither cookie nor keyword for you. *) | AlignOf t -> fprintf fmt "__alignof__(%a)" (self#typ None) t | AlignOfE e -> fprintf fmt "__alignof__(%a)" self#exp_non_decay e + | AddrOf ((Var v, NoOffset)) + when Datatype.String.Hashtbl.mem rename_builtins v.vname -> + self#varinfo fmt v | AddrOf lv -> fprintf fmt "& %a" (self#lval_prec Precedence.addrOfLevel) lv | StartOf(lv) -> if state.print_cil_as_is || non_decay then diff --git a/tests/value/oracle/invalid_pointer.0.res.oracle b/tests/value/oracle/invalid_pointer.0.res.oracle index 4d5ac453516..49074590ec4 100644 --- a/tests/value/oracle/invalid_pointer.0.res.oracle +++ b/tests/value/oracle/invalid_pointer.0.res.oracle @@ -420,4 +420,4 @@ [inout] Out (internal) for function main: Frama_C_entropy_source [inout] Inputs for function main: - Frama_C_entropy_source; SIG_DFL; SIG_IGN; SIG_ERR; undet + Frama_C_entropy_source; undet diff --git a/tests/value/oracle/invalid_pointer.1.res.oracle b/tests/value/oracle/invalid_pointer.1.res.oracle index f8121ed36eb..132d1bef54d 100644 --- a/tests/value/oracle/invalid_pointer.1.res.oracle +++ b/tests/value/oracle/invalid_pointer.1.res.oracle @@ -348,4 +348,4 @@ [inout] Out (internal) for function main: Frama_C_entropy_source [inout] Inputs for function main: - Frama_C_entropy_source; SIG_DFL; SIG_IGN; SIG_ERR; undet + Frama_C_entropy_source; undet -- GitLab