diff --git a/share/libc/__fc_builtin.h b/share/libc/__fc_builtin.h
index fa8e9c3a759d4c58282e4382453bcf44d4e641ab..35e11be02df89bac2af9b79c5f22ae5bb0ff7414 100644
--- a/share/libc/__fc_builtin.h
+++ b/share/libc/__fc_builtin.h
@@ -35,118 +35,124 @@ extern volatile int Frama_C_entropy_source __attribute__((unused));
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures initialization: \initialized(p + (0 .. l-1));
 */
-extern void Frama_C_make_unknown(char *p, size_t l);
+extern void Frama_C_make_unknown(char *p, size_t l) __attribute__((FC_BUILTIN));
 
 /*@ assigns \result \from a, b, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_a_or_b: \result == a || \result == b ;
  */
-extern int Frama_C_nondet(int a, int b);
+extern int Frama_C_nondet(int a, int b) __attribute__((FC_BUILTIN));
 
 /*@ assigns \result \from a, b, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_a_or_b: \result == a || \result == b ;
  */
-extern void *Frama_C_nondet_ptr(void *a, void *b);
+extern void *Frama_C_nondet_ptr(void *a, void *b) __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern int Frama_C_interval(int min, int max);
+extern int Frama_C_interval(int min, int max) __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern int Frama_C_interval_split(int min, int max);
+extern int Frama_C_interval_split(int min, int max) __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern unsigned char Frama_C_unsigned_char_interval
-  (unsigned char min, unsigned char max);
+extern unsigned char Frama_C_unsigned_char_interval(unsigned char min,
+                                                    unsigned char max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern char Frama_C_char_interval(char min, char max);
+extern char Frama_C_char_interval(char min, char max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern unsigned short Frama_C_unsigned_short_interval(unsigned short min, unsigned short max);
+extern unsigned short Frama_C_unsigned_short_interval(unsigned short min,
+                                                      unsigned short max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern short Frama_C_short_interval(short min, short max);
-
+extern short Frama_C_short_interval(short min, short max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern unsigned int Frama_C_unsigned_int_interval(unsigned int min, unsigned int max);
+extern unsigned int Frama_C_unsigned_int_interval(unsigned int min,
+                                                  unsigned int max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern int Frama_C_int_interval(int min, int max);
-
+extern int Frama_C_int_interval(int min, int max) __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern unsigned long Frama_C_unsigned_long_interval
-     (unsigned long min, unsigned long max);
+extern unsigned long Frama_C_unsigned_long_interval(unsigned long min,
+                                                    unsigned long max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern long Frama_C_long_interval(long min, long max);
-
+extern long Frama_C_long_interval(long min, long max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern unsigned long long Frama_C_unsigned_long_long_interval
-     (unsigned long long min, unsigned long long max);
+extern unsigned long long Frama_C_unsigned_long_long_interval(
+    unsigned long long min, unsigned long long max) __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern long long Frama_C_long_long_interval(long long min, long long max);
-
+extern long long Frama_C_long_long_interval(long long min, long long max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires order: min <= max;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: min <= \result <= max ;
  */
-extern size_t Frama_C_size_t_interval(size_t min, size_t max);
-
+extern size_t Frama_C_size_t_interval(size_t min, size_t max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires finite: \is_finite(min) && \is_finite(max);
     requires order: min <= max;
@@ -154,7 +160,8 @@ extern size_t Frama_C_size_t_interval(size_t min, size_t max);
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: \is_finite(\result) && min <= \result <= max;
  */
-extern float Frama_C_float_interval(float min, float max);
+extern float Frama_C_float_interval(float min, float max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires finite: \is_finite(min) && \is_finite(max);
     requires order: min <= max;
@@ -162,7 +169,8 @@ extern float Frama_C_float_interval(float min, float max);
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: \is_finite(\result) && min <= \result <= max;
  */
-extern double Frama_C_double_interval(double min, double max);
+extern double Frama_C_double_interval(double min, double max)
+    __attribute__((FC_BUILTIN));
 
 /*@ requires finite: \is_finite(min) && \is_finite(max);
     requires order: min <= max;
@@ -170,32 +178,39 @@ extern double Frama_C_double_interval(double min, double max);
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
     ensures result_bounded: \is_finite(\result) && min <= \result <= max;
  */
-extern double Frama_C_real_interval_as_double(double min, double max);
+extern double Frama_C_real_interval_as_double(double min, double max)
+    __attribute__((FC_BUILTIN));
 
 /*@ // Signals an error;
   terminates \false;
   assigns \nothing;
   ensures never_terminates: \false;
 */
-extern void Frama_C_abort(void) __attribute__ ((__noreturn__));
+extern void Frama_C_abort(void) __attribute__((__noreturn__))
+__attribute__((FC_BUILTIN));
 
 /*@ assigns \result \from p; */
-extern size_t Frama_C_offset(const void* p);
+extern size_t Frama_C_offset(const void *p) __attribute__((FC_BUILTIN));
 
-extern void *Frama_C_malloc_fresh(size_t size);
+extern void *Frama_C_malloc_fresh(size_t size) __attribute__((FC_BUILTIN));
 
 //@ assigns \result \from i;
-extern long long Frama_C_abstract_cardinal(long long i);
+extern long long Frama_C_abstract_cardinal(long long i)
+    __attribute__((FC_BUILTIN));
+
 //@ assigns \result \from i;
-extern long long Frama_C_abstract_max(long long i);
+extern long long Frama_C_abstract_max(long long i) __attribute__((FC_BUILTIN));
+
 //@ assigns \result \from i;
-extern long long Frama_C_abstract_min(long long i);
+extern long long Frama_C_abstract_min(long long i) __attribute__((FC_BUILTIN));
 
 //@ assigns \nothing;
-extern void Frama_C_watch_value(void *p, size_t size, int i, int n);
+extern void Frama_C_watch_value(void *p, size_t size, int i, int n)
+    __attribute__((FC_BUILTIN));
 
 //@ assigns \nothing;
-extern void Frama_C_watch_cardinal(void *p, size_t size, int i, int n);
+extern void Frama_C_watch_cardinal(void *p, size_t size, int i, int n)
+    __attribute__((FC_BUILTIN));
 
 __END_DECLS
 
diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml
index 6d5c0ae28e11386f874059099f72e95d7aacf487..13006c859426f3ebde563fd698077ba99ec641b1 100644
--- a/src/kernel_internals/typing/cabs2cil.ml
+++ b/src/kernel_internals/typing/cabs2cil.ml
@@ -4963,6 +4963,13 @@ and makeVarSizeVarInfo ghost (ldecl : location)
         ~isglobal:false
         ldecl spec_res (n,ndt,a), empty, zero ~loc:ldecl, false
     | Some (ndt', se, len) ->
+      (* In this case, we have changed the type from VLA to pointer: add the
+         qualifier to the elements. *)
+      let spec_res = match spec_res with
+        | (t, sto , inline , attrs) when ghost ->
+          (t, sto , inline , ("ghost", []) :: attrs)
+        | normal -> normal
+      in
       makeVarInfoCabs ~ghost ~isformal:false
         ~isglobal:false
         ldecl spec_res (n,ndt',a), se, len, true
diff --git a/src/kernel_internals/typing/ghost_accesses.ml b/src/kernel_internals/typing/ghost_accesses.ml
index a123a753dd6b66055de9eabb656c8bd4ff07472c..72ea15e54e5acf994e835c62e6303589397d6f31 100644
--- a/src/kernel_internals/typing/ghost_accesses.ml
+++ b/src/kernel_internals/typing/ghost_accesses.ml
@@ -172,21 +172,22 @@ class visitor = object(self)
         if not (isGhostType (typeOfLval lv)) then
           Error.assigns_non_ghost_lvalue ~current:true lv
       in
-      let call_varinfo = function
-        | { enode = Lval ( (Var vi), NoOffset ) } -> Some vi
-        | _ -> None
+      let is_builtin vi =
+        Ast_info.is_frama_c_builtin vi.vname ||
+        Cil_builtins.is_builtin vi
       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 (is_ghost fct) ->
+          begin match Kernel_function.(Option.map get_vi @@ get_called fexp) with
+            | Some fct
+              when not (is_builtin fct) && not fct.vghost ->
               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 (is_ghost fct) ->
+        | Local_init(_, ConsInit(fct, _, _), _)
+          when not (is_builtin fct) && not fct.vghost ->
           Error.non_ghost_function_call_in_ghost ~current:true () ; true
         | _ -> false
       in
@@ -197,9 +198,13 @@ class visitor = object(self)
               error_if_not_writable lv ;
               match i with
               | Call(_, fexp, _, _) ->
-                error_if_incompatible lv (getReturnType (typeOf fexp)) fexp
+                let vi =
+                  Kernel_function.(get_vi @@ Option.get @@ get_called fexp) in
+                if not (is_builtin vi) then
+                  error_if_incompatible lv (getReturnType (typeOf fexp)) fexp
               | Local_init(_, ConsInit(fct, _, _), _) ->
-                error_if_incompatible lv (getReturnType fct.vtype) (evar fct)
+                if not (is_builtin fct) then
+                  error_if_incompatible lv (getReturnType fct.vtype) (evar fct)
               | _ -> ()
             end
           (* Note that we do not check "assigns" for a ghost function call since
diff --git a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle
index fc0a491dcf7bcadaa3893e54c598d9e997b3bc53..f6cbbacc42cbecac9183de261ba17490eddb4cf3 100644
--- a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle
@@ -291,7 +291,6 @@
   ----------------------------------------------------------------------------
 [kernel] Parsing TMPDIR/aorai_serial_0.i (no preprocessing)
 /* Generated by Frama-C */
-typedef unsigned long size_t;
 enum aorai_States {
     Complete = 0,
     DataReq1 = 1,
@@ -332,196 +331,13 @@ enum aorai_OpStatusList {
    void Frama_C_show_aorai_state(...);   */
 extern int volatile Frama_C_entropy_source __attribute__((__unused__));
 
-/*@ requires valid_p: \valid(p + (0 .. l - 1));
-    ensures initialization: \initialized(\old(p) + (0 .. \old(l) - 1));
-    assigns *(p + (0 .. l - 1)), Frama_C_entropy_source;
-    assigns *(p + (0 .. l - 1)) \from Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern void Frama_C_make_unknown(char *p, size_t l);
-
-/*@ ensures result_a_or_b: \result ≡ \old(a) ∨ \result ≡ \old(b);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from a, b, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern int Frama_C_nondet(int a, int b);
-
-/*@ ensures result_a_or_b: \result ≡ \old(a) ∨ \result ≡ \old(b);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from a, b, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern void *Frama_C_nondet_ptr(void *a, void *b);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern int Frama_C_interval(int min, int max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern int Frama_C_interval_split(int min, int max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned char Frama_C_unsigned_char_interval(unsigned char min,
-                                                    unsigned char max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern char Frama_C_char_interval(char min, char max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned short Frama_C_unsigned_short_interval(unsigned short min,
-                                                      unsigned short max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern short Frama_C_short_interval(short min, short max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned int Frama_C_unsigned_int_interval(unsigned int min,
-                                                  unsigned int max);
-
 /*@ requires order: min ≤ max;
     ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
     assigns \result, Frama_C_entropy_source;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
  */
-extern int Frama_C_int_interval(int min, int max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned long Frama_C_unsigned_long_interval(unsigned long min,
-                                                    unsigned long max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern long Frama_C_long_interval(long min, long max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned long long Frama_C_unsigned_long_long_interval(unsigned long long min,
-                                                              unsigned long long max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern long long Frama_C_long_long_interval(long long min, long long max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern size_t Frama_C_size_t_interval(size_t min, size_t max);
-
-/*@ requires finite: \is_finite(min) ∧ \is_finite(max);
-    requires order: min ≤ max;
-    ensures
-      result_bounded:
-        \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern float Frama_C_float_interval(float min, float max);
-
-/*@ requires finite: \is_finite(min) ∧ \is_finite(max);
-    requires order: min ≤ max;
-    ensures
-      result_bounded:
-        \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern double Frama_C_double_interval(double min, double max);
-
-/*@ requires finite: \is_finite(min) ∧ \is_finite(max);
-    requires order: min ≤ max;
-    ensures
-      result_bounded:
-        \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern double Frama_C_real_interval_as_double(double min, double max);
-
-/*@ terminates \false;
-    ensures never_terminates: \false;
-    assigns \nothing; */
-extern  __attribute__((__noreturn__)) void Frama_C_abort(void);
-
-/*@ assigns \result;
-    assigns \result \from p; */
-extern size_t Frama_C_offset(void const *p);
-
-/*@ assigns \result;
-    assigns \result \from i; */
-extern long long Frama_C_abstract_cardinal(long long i);
-
-/*@ assigns \result;
-    assigns \result \from i; */
-extern long long Frama_C_abstract_max(long long i);
-
-/*@ assigns \result;
-    assigns \result \from i; */
-extern long long Frama_C_abstract_min(long long i);
-
-/*@ assigns \nothing; */
-extern void Frama_C_watch_value(void *p, size_t size, int i, int n);
-
-/*@ assigns \nothing; */
-extern void Frama_C_watch_cardinal(void *p, size_t size, int i, int n);
+extern  __attribute__((__FC_BUILTIN__)) int Frama_C_interval(int min, int max);
 
 int volatile indefinitely;
 int buffer[5];
diff --git a/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle b/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle
index a171b4de92e5e8d97fb60209feb3f84a58c6fe4a..80915856615d80692afbea34a939455e0bb02bf8 100644
--- a/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle
+++ b/src/plugins/aorai/tests/ya/oracle_prove/serial.res.oracle
@@ -1,5 +1,5 @@
 [kernel] Parsing serial.c (with preprocessing)
 [kernel] Parsing TMPDIR/aorai_serial_0_prove.i (no preprocessing)
 [wp] Warning: Missing RTE guards
-[kernel:annot:missing-spec] TMPDIR/aorai_serial_0_prove.i:1456: Warning: 
+[kernel:annot:missing-spec] TMPDIR/aorai_serial_0_prove.i:1273: Warning: 
   Neither code nor specification for function Frama_C_show_aorai_state, generating default assigns from the prototype
diff --git a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif
index 226d230c654e28da68998015f8a04d48db53ab90..974b7a37e8fca83ef3f808540f6c5acec657b73b 100644
--- a/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif
+++ b/src/plugins/markdown-report/tests/sarif/oracle/std_string.sarif
@@ -1159,9 +1159,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 180,
+                  "startLine": 189,
                   "startColumn": 12,
-                  "endLine": 180,
+                  "endLine": 189,
                   "endColumn": 25,
                   "byteLength": 13
                 }
@@ -1182,9 +1182,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 178,
+                  "startLine": 187,
                   "startColumn": 28,
-                  "endLine": 178,
+                  "endLine": 187,
                   "endColumn": 34,
                   "byteLength": 6
                 }
@@ -1205,9 +1205,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 180,
+                  "startLine": 189,
                   "startColumn": 12,
-                  "endLine": 180,
+                  "endLine": 189,
                   "endColumn": 25,
                   "byteLength": 13
                 }
@@ -1228,9 +1228,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 176,
+                  "startLine": 185,
                   "startColumn": 13,
-                  "endLine": 176,
+                  "endLine": 185,
                   "endColumn": 19,
                   "byteLength": 6
                 }
@@ -1254,9 +1254,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 188,
+                  "startLine": 198,
                   "startColumn": 17,
-                  "endLine": 188,
+                  "endLine": 198,
                   "endColumn": 42,
                   "byteLength": 25
                 }
@@ -1279,9 +1279,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 188,
+                  "startLine": 198,
                   "startColumn": 17,
-                  "endLine": 188,
+                  "endLine": 198,
                   "endColumn": 42,
                   "byteLength": 25
                 }
@@ -1305,9 +1305,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 187,
+                  "startLine": 197,
                   "startColumn": 12,
-                  "endLine": 187,
+                  "endLine": 197,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1330,9 +1330,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 190,
+                  "startLine": 202,
                   "startColumn": 17,
-                  "endLine": 190,
+                  "endLine": 202,
                   "endColumn": 37,
                   "byteLength": 20
                 }
@@ -1355,9 +1355,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 190,
+                  "startLine": 202,
                   "startColumn": 17,
-                  "endLine": 190,
+                  "endLine": 202,
                   "endColumn": 37,
                   "byteLength": 20
                 }
@@ -1381,9 +1381,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 189,
+                  "startLine": 201,
                   "startColumn": 12,
-                  "endLine": 189,
+                  "endLine": 201,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1406,9 +1406,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 192,
+                  "startLine": 205,
                   "startColumn": 17,
-                  "endLine": 192,
+                  "endLine": 205,
                   "endColumn": 37,
                   "byteLength": 20
                 }
@@ -1431,9 +1431,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 192,
+                  "startLine": 205,
                   "startColumn": 17,
-                  "endLine": 192,
+                  "endLine": 205,
                   "endColumn": 37,
                   "byteLength": 20
                 }
@@ -1457,9 +1457,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 191,
+                  "startLine": 204,
                   "startColumn": 12,
-                  "endLine": 191,
+                  "endLine": 204,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1482,9 +1482,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 79,
+                  "startLine": 80,
                   "startColumn": 12,
-                  "endLine": 79,
+                  "endLine": 80,
                   "endColumn": 33,
                   "byteLength": 21
                 }
@@ -1505,9 +1505,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 74,
+                  "startLine": 75,
                   "startColumn": 20,
-                  "endLine": 74,
+                  "endLine": 75,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -1528,9 +1528,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 77,
+                  "startLine": 78,
                   "startColumn": 28,
-                  "endLine": 77,
+                  "endLine": 78,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -1553,9 +1553,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 75,
+                  "startLine": 76,
                   "startColumn": 12,
-                  "endLine": 75,
+                  "endLine": 76,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1579,9 +1579,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 75,
+                  "startLine": 76,
                   "startColumn": 12,
-                  "endLine": 75,
+                  "endLine": 76,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1605,9 +1605,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 76,
+                  "startLine": 77,
                   "startColumn": 12,
-                  "endLine": 76,
+                  "endLine": 77,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -1630,9 +1630,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 165,
+                  "startLine": 172,
                   "startColumn": 14,
-                  "endLine": 165,
+                  "endLine": 172,
                   "endColumn": 37,
                   "byteLength": 23
                 }
@@ -1653,9 +1653,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 159,
+                  "startLine": 166,
                   "startColumn": 21,
-                  "endLine": 159,
+                  "endLine": 166,
                   "endColumn": 55,
                   "byteLength": 34
                 }
@@ -1676,9 +1676,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 160,
+                  "startLine": 167,
                   "startColumn": 20,
-                  "endLine": 160,
+                  "endLine": 167,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -1699,9 +1699,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 163,
+                  "startLine": 170,
                   "startColumn": 28,
-                  "endLine": 163,
+                  "endLine": 170,
                   "endColumn": 72,
                   "byteLength": 44
                 }
@@ -1724,9 +1724,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 161,
+                  "startLine": 168,
                   "startColumn": 12,
-                  "endLine": 161,
+                  "endLine": 168,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1750,9 +1750,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 161,
+                  "startLine": 168,
                   "startColumn": 12,
-                  "endLine": 161,
+                  "endLine": 168,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1776,9 +1776,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 162,
+                  "startLine": 169,
                   "startColumn": 12,
-                  "endLine": 162,
+                  "endLine": 169,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -1801,9 +1801,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 157,
+                  "startLine": 163,
                   "startColumn": 13,
-                  "endLine": 157,
+                  "endLine": 163,
                   "endColumn": 35,
                   "byteLength": 22
                 }
@@ -1824,9 +1824,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 151,
+                  "startLine": 157,
                   "startColumn": 21,
-                  "endLine": 151,
+                  "endLine": 157,
                   "endColumn": 55,
                   "byteLength": 34
                 }
@@ -1847,9 +1847,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 152,
+                  "startLine": 158,
                   "startColumn": 20,
-                  "endLine": 152,
+                  "endLine": 158,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -1870,9 +1870,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 155,
+                  "startLine": 161,
                   "startColumn": 28,
-                  "endLine": 155,
+                  "endLine": 161,
                   "endColumn": 72,
                   "byteLength": 44
                 }
@@ -1895,9 +1895,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 153,
+                  "startLine": 159,
                   "startColumn": 12,
-                  "endLine": 153,
+                  "endLine": 159,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1921,9 +1921,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 153,
+                  "startLine": 159,
                   "startColumn": 12,
-                  "endLine": 153,
+                  "endLine": 159,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -1947,9 +1947,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 154,
+                  "startLine": 160,
                   "startColumn": 12,
-                  "endLine": 154,
+                  "endLine": 160,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -1972,9 +1972,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 108,
+                  "startLine": 114,
                   "startColumn": 11,
-                  "endLine": 108,
+                  "endLine": 114,
                   "endColumn": 31,
                   "byteLength": 20
                 }
@@ -1995,9 +1995,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 103,
+                  "startLine": 109,
                   "startColumn": 20,
-                  "endLine": 103,
+                  "endLine": 109,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -2018,9 +2018,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 106,
+                  "startLine": 112,
                   "startColumn": 28,
-                  "endLine": 106,
+                  "endLine": 112,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -2043,9 +2043,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 104,
+                  "startLine": 110,
                   "startColumn": 12,
-                  "endLine": 104,
+                  "endLine": 110,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -2069,9 +2069,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 104,
+                  "startLine": 110,
                   "startColumn": 12,
-                  "endLine": 104,
+                  "endLine": 110,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -2095,9 +2095,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 105,
+                  "startLine": 111,
                   "startColumn": 12,
-                  "endLine": 105,
+                  "endLine": 111,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -2416,9 +2416,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 124,
+                  "startLine": 130,
                   "startColumn": 12,
-                  "endLine": 124,
+                  "endLine": 130,
                   "endColumn": 33,
                   "byteLength": 21
                 }
@@ -2439,9 +2439,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 119,
+                  "startLine": 125,
                   "startColumn": 20,
-                  "endLine": 119,
+                  "endLine": 125,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -2462,9 +2462,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 122,
+                  "startLine": 128,
                   "startColumn": 28,
-                  "endLine": 122,
+                  "endLine": 128,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -2487,9 +2487,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 120,
+                  "startLine": 126,
                   "startColumn": 12,
-                  "endLine": 120,
+                  "endLine": 126,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -2513,9 +2513,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 120,
+                  "startLine": 126,
                   "startColumn": 12,
-                  "endLine": 120,
+                  "endLine": 126,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -2539,9 +2539,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 121,
+                  "startLine": 127,
                   "startColumn": 12,
-                  "endLine": 121,
+                  "endLine": 127,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -2565,9 +2565,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 140,
+                  "startLine": 146,
                   "startColumn": 17,
-                  "endLine": 140,
+                  "endLine": 146,
                   "endColumn": 43,
                   "byteLength": 26
                 }
@@ -2588,9 +2588,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 135,
+                  "startLine": 141,
                   "startColumn": 20,
-                  "endLine": 135,
+                  "endLine": 141,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -2611,9 +2611,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 138,
+                  "startLine": 144,
                   "startColumn": 28,
-                  "endLine": 138,
+                  "endLine": 144,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -2636,9 +2636,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 136,
+                  "startLine": 142,
                   "startColumn": 12,
-                  "endLine": 136,
+                  "endLine": 142,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -2662,9 +2662,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 136,
+                  "startLine": 142,
                   "startColumn": 12,
-                  "endLine": 136,
+                  "endLine": 142,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -2688,9 +2688,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 137,
+                  "startLine": 143,
                   "startColumn": 12,
-                  "endLine": 137,
+                  "endLine": 143,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -3109,9 +3109,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 183,
+                  "startLine": 193,
                   "startColumn": 14,
-                  "endLine": 183,
+                  "endLine": 193,
                   "endColumn": 28,
                   "byteLength": 14
                 }
@@ -3132,9 +3132,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 183,
+                  "startLine": 193,
                   "startColumn": 14,
-                  "endLine": 183,
+                  "endLine": 193,
                   "endColumn": 28,
                   "byteLength": 14
                 }
@@ -3158,9 +3158,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 182,
+                  "startLine": 192,
                   "startColumn": 12,
-                  "endLine": 182,
+                  "endLine": 192,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3184,9 +3184,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 173,
+                  "startLine": 181,
                   "startColumn": 14,
-                  "endLine": 173,
+                  "endLine": 181,
                   "endColumn": 45,
                   "byteLength": 31
                 }
@@ -3207,9 +3207,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 167,
+                  "startLine": 175,
                   "startColumn": 21,
-                  "endLine": 167,
+                  "endLine": 175,
                   "endColumn": 55,
                   "byteLength": 34
                 }
@@ -3230,9 +3230,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 168,
+                  "startLine": 176,
                   "startColumn": 20,
-                  "endLine": 168,
+                  "endLine": 176,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -3253,9 +3253,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 171,
+                  "startLine": 179,
                   "startColumn": 28,
-                  "endLine": 171,
+                  "endLine": 179,
                   "endColumn": 72,
                   "byteLength": 44
                 }
@@ -3279,9 +3279,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 169,
+                  "startLine": 177,
                   "startColumn": 12,
-                  "endLine": 169,
+                  "endLine": 177,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3305,9 +3305,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 169,
+                  "startLine": 177,
                   "startColumn": 12,
-                  "endLine": 169,
+                  "endLine": 177,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3331,9 +3331,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 170,
+                  "startLine": 178,
                   "startColumn": 12,
-                  "endLine": 170,
+                  "endLine": 178,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -3356,9 +3356,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 93,
+                  "startLine": 97,
                   "startColumn": 13,
-                  "endLine": 93,
+                  "endLine": 97,
                   "endColumn": 35,
                   "byteLength": 22
                 }
@@ -3379,9 +3379,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 88,
+                  "startLine": 92,
                   "startColumn": 20,
-                  "endLine": 88,
+                  "endLine": 92,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -3402,9 +3402,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 91,
+                  "startLine": 95,
                   "startColumn": 28,
-                  "endLine": 91,
+                  "endLine": 95,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -3427,9 +3427,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 89,
+                  "startLine": 93,
                   "startColumn": 12,
-                  "endLine": 89,
+                  "endLine": 93,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3453,9 +3453,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 89,
+                  "startLine": 93,
                   "startColumn": 12,
-                  "endLine": 89,
+                  "endLine": 93,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3479,9 +3479,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 90,
+                  "startLine": 94,
                   "startColumn": 12,
-                  "endLine": 90,
+                  "endLine": 94,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -3504,9 +3504,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 148,
+                  "startLine": 154,
                   "startColumn": 14,
-                  "endLine": 148,
+                  "endLine": 154,
                   "endColumn": 37,
                   "byteLength": 23
                 }
@@ -3527,9 +3527,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 143,
+                  "startLine": 149,
                   "startColumn": 20,
-                  "endLine": 143,
+                  "endLine": 149,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -3550,9 +3550,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 146,
+                  "startLine": 152,
                   "startColumn": 28,
-                  "endLine": 146,
+                  "endLine": 152,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -3575,9 +3575,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 144,
+                  "startLine": 150,
                   "startColumn": 12,
-                  "endLine": 144,
+                  "endLine": 150,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3601,9 +3601,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 144,
+                  "startLine": 150,
                   "startColumn": 12,
-                  "endLine": 144,
+                  "endLine": 150,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3627,9 +3627,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 145,
+                  "startLine": 151,
                   "startColumn": 12,
-                  "endLine": 145,
+                  "endLine": 151,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -3803,9 +3803,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 101,
+                  "startLine": 105,
                   "startColumn": 20,
-                  "endLine": 101,
+                  "endLine": 105,
                   "endColumn": 49,
                   "byteLength": 29
                 }
@@ -3826,9 +3826,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 96,
+                  "startLine": 100,
                   "startColumn": 20,
-                  "endLine": 96,
+                  "endLine": 100,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -3849,9 +3849,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 99,
+                  "startLine": 103,
                   "startColumn": 28,
-                  "endLine": 99,
+                  "endLine": 103,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -3875,9 +3875,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 97,
+                  "startLine": 101,
                   "startColumn": 12,
-                  "endLine": 97,
+                  "endLine": 101,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3901,9 +3901,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 97,
+                  "startLine": 101,
                   "startColumn": 12,
-                  "endLine": 97,
+                  "endLine": 101,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -3927,9 +3927,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 98,
+                  "startLine": 102,
                   "startColumn": 12,
-                  "endLine": 98,
+                  "endLine": 102,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -3953,9 +3953,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 116,
+                  "startLine": 121,
                   "startColumn": 21,
-                  "endLine": 116,
+                  "endLine": 121,
                   "endColumn": 51,
                   "byteLength": 30
                 }
@@ -3976,9 +3976,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 111,
+                  "startLine": 116,
                   "startColumn": 20,
-                  "endLine": 111,
+                  "endLine": 116,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -3999,9 +3999,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 114,
+                  "startLine": 119,
                   "startColumn": 28,
-                  "endLine": 114,
+                  "endLine": 119,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -4025,9 +4025,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 112,
+                  "startLine": 117,
                   "startColumn": 12,
-                  "endLine": 112,
+                  "endLine": 117,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -4051,9 +4051,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 112,
+                  "startLine": 117,
                   "startColumn": 12,
-                  "endLine": 112,
+                  "endLine": 117,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -4077,9 +4077,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 113,
+                  "startLine": 118,
                   "startColumn": 12,
-                  "endLine": 113,
+                  "endLine": 118,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -4103,9 +4103,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 132,
+                  "startLine": 138,
                   "startColumn": 26,
-                  "endLine": 132,
+                  "endLine": 138,
                   "endColumn": 61,
                   "byteLength": 35
                 }
@@ -4126,9 +4126,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 127,
+                  "startLine": 133,
                   "startColumn": 20,
-                  "endLine": 127,
+                  "endLine": 133,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -4149,9 +4149,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 130,
+                  "startLine": 136,
                   "startColumn": 28,
-                  "endLine": 130,
+                  "endLine": 136,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -4175,9 +4175,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 128,
+                  "startLine": 134,
                   "startColumn": 12,
-                  "endLine": 128,
+                  "endLine": 134,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -4201,9 +4201,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 128,
+                  "startLine": 134,
                   "startColumn": 12,
-                  "endLine": 128,
+                  "endLine": 134,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -4227,9 +4227,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 129,
+                  "startLine": 135,
                   "startColumn": 12,
-                  "endLine": 129,
+                  "endLine": 135,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -4253,9 +4253,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 86,
+                  "startLine": 88,
                   "startColumn": 22,
-                  "endLine": 86,
+                  "endLine": 88,
                   "endColumn": 53,
                   "byteLength": 31
                 }
@@ -4276,9 +4276,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 81,
+                  "startLine": 83,
                   "startColumn": 20,
-                  "endLine": 81,
+                  "endLine": 83,
                   "endColumn": 30,
                   "byteLength": 10
                 }
@@ -4299,9 +4299,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 84,
+                  "startLine": 86,
                   "startColumn": 28,
-                  "endLine": 84,
+                  "endLine": 86,
                   "endColumn": 49,
                   "byteLength": 21
                 }
@@ -4325,9 +4325,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 82,
+                  "startLine": 84,
                   "startColumn": 12,
-                  "endLine": 82,
+                  "endLine": 84,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -4351,9 +4351,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 82,
+                  "startLine": 84,
                   "startColumn": 12,
-                  "endLine": 82,
+                  "endLine": 84,
                   "endColumn": 19,
                   "byteLength": 7
                 }
@@ -4377,9 +4377,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 83,
+                  "startLine": 85,
                   "startColumn": 12,
-                  "endLine": 83,
+                  "endLine": 85,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -4402,9 +4402,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 198,
+                  "startLine": 212,
                   "startColumn": 12,
-                  "endLine": 198,
+                  "endLine": 212,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -4427,9 +4427,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 198,
+                  "startLine": 212,
                   "startColumn": 12,
-                  "endLine": 198,
+                  "endLine": 212,
                   "endColumn": 34,
                   "byteLength": 22
                 }
@@ -4452,9 +4452,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 195,
+                  "startLine": 208,
                   "startColumn": 12,
-                  "endLine": 195,
+                  "endLine": 208,
                   "endColumn": 31,
                   "byteLength": 19
                 }
@@ -4477,9 +4477,9 @@
                   "uriBaseId": "FRAMAC_SHARE"
                 },
                 "region": {
-                  "startLine": 195,
+                  "startLine": 208,
                   "startColumn": 12,
-                  "endLine": 195,
+                  "endLine": 208,
                   "endColumn": 31,
                   "byteLength": 19
                 }
diff --git a/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle
index faadd1df8084289a61a9d27e3c3bfd6d055fb10a..afe53a3b1ad910ea7ce6fa3ab1dff98598de0132 100644
--- a/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle
+++ b/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle
@@ -1,6 +1,8 @@
 # frama-c -wp [...]
 [kernel] Parsing string_c.c (with preprocessing)
 [wp] Running WP plugin...
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/string.c:348: Warning: 
+  Neither code nor specification for function Frama_C_malloc_fresh, generating default assigns from the prototype
 [wp] Warning: Missing RTE guards
 
 Goal Post-condition 'copied_contents' in 'memcpy':
diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle
index 7318a8dbf7a2a15ca46a09755a622c59dca99778..8d9d581ae5b07bb009c988c011c170b588b15664 100644
--- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle
+++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle
@@ -1,6 +1,8 @@
 # frama-c -wp -wp-timeout 120 -wp-steps 2500 [...]
 [kernel] Parsing string_c.c (with preprocessing)
 [wp] Running WP plugin...
+[kernel:annot:missing-spec] FRAMAC_SHARE/libc/string.c:348: Warning: 
+  Neither code nor specification for function Frama_C_malloc_fresh, generating default assigns from the prototype
 [wp] Warning: Missing RTE guards
 [wp] 44 goals scheduled
 [wp] [Valid] typed_memcpy_ensures_copied_contents (Alt-Ergo) (Cached)
diff --git a/tests/libc/fc_builtins_in_ghost.c b/tests/libc/fc_builtins_in_ghost.c
new file mode 100644
index 0000000000000000000000000000000000000000..dee454a232e0ce38067c6fb0803d2e207ec8a788
--- /dev/null
+++ b/tests/libc/fc_builtins_in_ghost.c
@@ -0,0 +1,7 @@
+#include "__fc_builtin.h"
+
+int main(void){
+  int i ;
+  //@ ghost Frama_C_show_each(i);
+  //@ ghost int p = Frama_C_int_interval(0, 10);
+}
diff --git a/tests/libc/oracle/argz_c.res.oracle b/tests/libc/oracle/argz_c.res.oracle
index 24cc544eb9131c56c2d2c6ad5cc6bdb61ac14e73..38154c70f762b0b3c003bb9665e58734bb9fe8c1 100644
--- a/tests/libc/oracle/argz_c.res.oracle
+++ b/tests/libc/oracle/argz_c.res.oracle
@@ -52,6 +52,7 @@
   \return(argz_replace) == 0, 6 (auto)
   \return(argz_next) == 0 (auto)
   \return(Frama_C_nondet_ptr) == 0 (auto)
+  \return(Frama_C_malloc_fresh) == 0 (auto)
   \return(char_equal_ignore_case) == 0 (auto)
 [eva] Analyzing a complete application starting at main
 [eva] Computing initial state
diff --git a/tests/libc/oracle/coverage.res.oracle b/tests/libc/oracle/coverage.res.oracle
index d09173f9031a2dc4fbd2d38040e0b175e2ae22c4..60b8ff1014ee1cf991dbfaeed1c3cfbc3d38a8c0 100644
--- a/tests/libc/oracle/coverage.res.oracle
+++ b/tests/libc/oracle/coverage.res.oracle
@@ -28,7 +28,7 @@
   main: 4 stmts out of 4 (100.0%)
 [metrics] Eva coverage statistics
   =======================
-  Syntactically reachable functions = 2 (out of 116)
+  Syntactically reachable functions = 2 (out of 98)
   Semantically reached functions = 2
   Coverage estimation = 100.0%
 [metrics] Statements analyzed by Eva
diff --git a/tests/libc/oracle/fc_builtins_in_ghost.res.oracle b/tests/libc/oracle/fc_builtins_in_ghost.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..0d46a02edf54ae25582fb34c1838da1810cdabd6
--- /dev/null
+++ b/tests/libc/oracle/fc_builtins_in_ghost.res.oracle
@@ -0,0 +1,20 @@
+[kernel] Parsing fc_builtins_in_ghost.c (with preprocessing)
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
+  
+[eva] fc_builtins_in_ghost.c:5: Frama_C_show_each: ⊥
+[eva] computing for function Frama_C_int_interval <- main.
+  Called from fc_builtins_in_ghost.c:6.
+[eva] using specification for function Frama_C_int_interval
+[eva] fc_builtins_in_ghost.c:6: 
+  function Frama_C_int_interval: precondition 'order' got status valid.
+[eva] Done for function Frama_C_int_interval
+[eva] Recording results for main
+[eva] done for function main
+[eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function main:
+  Frama_C_entropy_source ∈ [--..--]
+  p ∈ [0..10]
+  __retres ∈ {0}
diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle
index 5a35c61690f2dd9a0489f8d22cddd5839c938637..a081af020567740d163a884cea6fb8618fb442ad 100644
--- a/tests/libc/oracle/fc_libc.1.res.oracle
+++ b/tests/libc/oracle/fc_libc.1.res.oracle
@@ -401,122 +401,19 @@ struct termios {
    cc_t c_cc[32] ;
 };
 int volatile Frama_C_entropy_source __attribute__((__unused__));
-void Frama_C_make_unknown(char *p, size_t l);
+ __attribute__((__FC_BUILTIN__)) void Frama_C_make_unknown(char *p, size_t l);
 
-int Frama_C_nondet(int a, int b);
+ __attribute__((__FC_BUILTIN__)) int Frama_C_nondet(int a, int b);
 
-void *Frama_C_nondet_ptr(void *a, void *b);
+ __attribute__((__FC_BUILTIN__)) int Frama_C_interval(int min, int max);
 
-int Frama_C_interval(int min, int max);
+ __attribute__((__FC_BUILTIN__)) char Frama_C_char_interval(char min,
+                                                            char max);
 
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern int Frama_C_interval_split(int min, int max);
-
-unsigned char Frama_C_unsigned_char_interval(unsigned char min,
-                                             unsigned char max);
-
-char Frama_C_char_interval(char min, char max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned short Frama_C_unsigned_short_interval(unsigned short min,
-                                                      unsigned short max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern short Frama_C_short_interval(short min, short max);
-
-unsigned int Frama_C_unsigned_int_interval(unsigned int min, unsigned int max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern int Frama_C_int_interval(int min, int max);
-
-unsigned long Frama_C_unsigned_long_interval(unsigned long min,
-                                             unsigned long max);
-
-long Frama_C_long_interval(long min, long max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern unsigned long long Frama_C_unsigned_long_long_interval(unsigned long long min,
-                                                              unsigned long long max);
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern long long Frama_C_long_long_interval(long long min, long long max);
+ __attribute__((__FC_BUILTIN__)) unsigned int Frama_C_unsigned_int_interval
+(unsigned int min, unsigned int max);
 
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern size_t Frama_C_size_t_interval(size_t min, size_t max);
-
-float Frama_C_float_interval(float min, float max);
-
-double Frama_C_double_interval(double min, double max);
-
-/*@ requires finite: \is_finite(min) ∧ \is_finite(max);
-    requires order: min ≤ max;
-    ensures
-      result_bounded:
-        \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-extern double Frama_C_real_interval_as_double(double min, double max);
-
- __attribute__((__noreturn__)) void Frama_C_abort(void);
-
-/*@ assigns \result;
-    assigns \result \from p; */
-extern size_t Frama_C_offset(void const *p);
-
-/*@ assigns \result;
-    assigns \result \from i; */
-extern long long Frama_C_abstract_cardinal(long long i);
-
-/*@ assigns \result;
-    assigns \result \from i; */
-extern long long Frama_C_abstract_max(long long i);
-
-/*@ assigns \result;
-    assigns \result \from i; */
-extern long long Frama_C_abstract_min(long long i);
-
-/*@ assigns \nothing; */
-extern void Frama_C_watch_value(void *p, size_t size, int i, int n);
-
-/*@ assigns \nothing; */
-extern void Frama_C_watch_cardinal(void *p, size_t size, int i, int n);
+ __attribute__((__noreturn__, __FC_BUILTIN__)) void Frama_C_abort(void);
 
 unsigned int volatile __fc_unsigned_int_entropy;
 long volatile __fc_long_entropy;
@@ -536,6 +433,7 @@ void Frama_C_update_entropy(void)
     assigns *(p + (0 .. l - 1)) \from Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
  */
+ __attribute__((__FC_BUILTIN__)) void Frama_C_make_unknown(char *p, size_t l);
 void Frama_C_make_unknown(char *p, size_t l)
 {
   Frama_C_update_entropy();
@@ -554,6 +452,7 @@ void Frama_C_make_unknown(char *p, size_t l)
     assigns \result \from a, b, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
  */
+ __attribute__((__FC_BUILTIN__)) int Frama_C_nondet(int a, int b);
 int Frama_C_nondet(int a, int b)
 {
   int tmp;
@@ -562,25 +461,13 @@ int Frama_C_nondet(int a, int b)
   return tmp;
 }
 
-/*@ ensures result_a_or_b: \result ≡ \old(a) ∨ \result ≡ \old(b);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from a, b, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-void *Frama_C_nondet_ptr(void *a, void *b)
-{
-  void *tmp;
-  Frama_C_update_entropy();
-  if (Frama_C_entropy_source) tmp = a; else tmp = b;
-  return tmp;
-}
-
 /*@ requires order: min ≤ max;
     ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
     assigns \result, Frama_C_entropy_source;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
  */
+ __attribute__((__FC_BUILTIN__)) int Frama_C_interval(int min, int max);
 int Frama_C_interval(int min, int max)
 {
   int r;
@@ -599,6 +486,8 @@ int Frama_C_interval(int min, int max)
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
  */
+ __attribute__((__FC_BUILTIN__)) char Frama_C_char_interval(char min,
+                                                            char max);
 char Frama_C_char_interval(char min, char max)
 {
   char __retres;
@@ -608,62 +497,14 @@ char Frama_C_char_interval(char min, char max)
   return __retres;
 }
 
-/*@ requires finite: \is_finite(min) ∧ \is_finite(max);
-    requires order: min ≤ max;
-    ensures
-      result_bounded:
-        \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-float Frama_C_float_interval(float min, float max)
-{
-  float tmp;
-  Frama_C_update_entropy();
-  if (Frama_C_entropy_source) tmp = min; else tmp = max;
-  return tmp;
-}
-
-/*@ requires finite: \is_finite(min) ∧ \is_finite(max);
-    requires order: min ≤ max;
-    ensures
-      result_bounded:
-        \is_finite(\result) ∧ \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-double Frama_C_double_interval(double min, double max)
-{
-  double tmp;
-  Frama_C_update_entropy();
-  if (Frama_C_entropy_source) tmp = min; else tmp = max;
-  return tmp;
-}
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-unsigned char Frama_C_unsigned_char_interval(unsigned char min,
-                                             unsigned char max)
-{
-  unsigned char __retres;
-  int tmp;
-  tmp = Frama_C_interval((int)min,(int)max);
-  __retres = (unsigned char)tmp;
-  return __retres;
-}
-
 /*@ requires order: min ≤ max;
     ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
     assigns \result, Frama_C_entropy_source;
     assigns \result \from min, max, Frama_C_entropy_source;
     assigns Frama_C_entropy_source \from Frama_C_entropy_source;
  */
+ __attribute__((__FC_BUILTIN__)) unsigned int Frama_C_unsigned_int_interval
+(unsigned int min, unsigned int max);
 unsigned int Frama_C_unsigned_int_interval(unsigned int min, unsigned int max)
 {
   unsigned int r;
@@ -676,49 +517,12 @@ unsigned int Frama_C_unsigned_int_interval(unsigned int min, unsigned int max)
   return r;
 }
 
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-long Frama_C_long_interval(long min, long max)
-{
-  long r;
-  long aux;
-  Frama_C_update_entropy();
-  aux = __fc_long_entropy;
-  if (aux >= min) 
-    if (aux <= max) r = aux; else r = min;
-  else r = min;
-  return r;
-}
-
-/*@ requires order: min ≤ max;
-    ensures result_bounded: \old(min) ≤ \result ≤ \old(max);
-    assigns \result, Frama_C_entropy_source;
-    assigns \result \from min, max, Frama_C_entropy_source;
-    assigns Frama_C_entropy_source \from Frama_C_entropy_source;
- */
-unsigned long Frama_C_unsigned_long_interval(unsigned long min,
-                                             unsigned long max)
-{
-  unsigned long r;
-  unsigned long aux;
-  Frama_C_update_entropy();
-  aux = __fc_unsigned_long_entropy;
-  if (aux >= min) 
-    if (aux <= max) r = aux; else r = min;
-  else r = min;
-  return r;
-}
-
 extern  __attribute__((__noreturn__)) void __builtin_abort(void);
 
 /*@ terminates \false;
     ensures never_terminates: \false;
     assigns \nothing; */
- __attribute__((__noreturn__)) void Frama_C_abort(void);
+ __attribute__((__noreturn__, __FC_BUILTIN__)) void Frama_C_abort(void);
 void Frama_C_abort(void)
 {
   __builtin_abort();
diff --git a/tests/libc/oracle/netdb_c.res.oracle b/tests/libc/oracle/netdb_c.res.oracle
index dd5fb9f0607ec68958b8e2a81e9ba45e0ee0e3fe..3d81a1c5006d30b08dfbb1afd43caec4a9204dfc 100644
--- a/tests/libc/oracle/netdb_c.res.oracle
+++ b/tests/libc/oracle/netdb_c.res.oracle
@@ -52,6 +52,7 @@
   \return(gethostbyname) == 0 (auto)
   \return(Frama_C_nondet) == 0 (auto)
   \return(Frama_C_nondet_ptr) == 0 (auto)
+  \return(Frama_C_malloc_fresh) == 0 (auto)
 [eva] Analyzing a complete application starting at main
 [eva] Computing initial state
 [eva] Initial state computed
diff --git a/tests/syntax/ghost_vla.i b/tests/syntax/ghost_vla.i
new file mode 100644
index 0000000000000000000000000000000000000000..e2fbc9a738198c33b9f84bd47730a7d7d4dacfd1
--- /dev/null
+++ b/tests/syntax/ghost_vla.i
@@ -0,0 +1,9 @@
+int local_vla(int len){
+  //@ ghost int a[len];
+  //@ ghost a[4] = 32;
+  return 42;
+}
+
+void formal_vla(int len) /*@ ghost (int a[len]) */{
+  //@ ghost a[4] = 32;
+}
diff --git a/tests/syntax/oracle/ghost_vla.res.oracle b/tests/syntax/oracle/ghost_vla.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..fba7be0da522d7865730b903feb102be92a63c80
--- /dev/null
+++ b/tests/syntax/oracle/ghost_vla.res.oracle
@@ -0,0 +1,34 @@
+[kernel] Parsing ghost_vla.i (no preprocessing)
+/* Generated by Frama-C */
+/*@ assigns \nothing;
+    frees p; */
+ __attribute__((__FC_BUILTIN__)) void __fc_vla_free(void *p);
+
+/*@ assigns \result;
+    assigns \result \from \nothing;
+    allocates \result; */
+ __attribute__((__FC_BUILTIN__)) void *__fc_vla_alloc(unsigned int size);
+
+int local_vla(int len)
+{
+  int __retres;
+  /*@ ghost unsigned int __lengthof_a; */
+  /*@ ghost
+    /@ assert alloca_bounds: 0 < sizeof(int \ghost) * len ≤ 4294967295; @/
+    ;
+    __lengthof_a = (unsigned int)len;
+    int \ghost *a = __fc_vla_alloc(sizeof(int \ghost) * __lengthof_a);
+  */
+  /*@ ghost *(a + 4) = 32; */
+  __retres = 42;
+  __fc_vla_free((void *)a);
+  return __retres;
+}
+
+void formal_vla(int len) /*@ ghost (int \ghost a[len]) */
+{
+  /*@ ghost *(a + 4) = 32; */
+  return;
+}
+
+