From 23b93746e01241bf736cafd4507232ce05058b85 Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Wed, 24 Mar 2021 19:25:27 +0100
Subject: [PATCH] [conversion] mark static data member as extern

so that they can be defined in one translation unit while the class is
declared multiple times.
---
 convert.ml                                    |   3 +
 tests/basic/oracle/aggregate.res.oracle       |   8 -
 .../basic/oracle/anonymous_struct.res.oracle  |   2 -
 tests/basic/oracle/array_field.res.oracle     |   2 -
 tests/basic/oracle/bitfields.res.oracle       |   2 -
 .../brace_or_equal_initializer.res.oracle     |   2 -
 tests/basic/oracle/c_link.res.oracle          |   4 -
 tests/basic/oracle/default_args.res.oracle    |   2 -
 tests/basic/oracle/delete_all_kind.res.oracle |   4 -
 .../basic/oracle/forWithSimpleDecl.res.oracle |   2 -
 tests/basic/oracle/forward.res.oracle         |   4 -
 tests/basic/oracle/gnu_body.res.oracle        |   2 -
 tests/basic/oracle/incomplete_type.res.oracle |   4 -
 tests/basic/oracle/init.res.oracle            |   4 -
 .../method_translation_order_2064.res.oracle  |   2 -
 tests/basic/oracle/namespace.res.oracle       |   2 -
 tests/basic/oracle/new.res.oracle             |   7 -
 tests/basic/oracle/new_all_kind.res.oracle    |   2 -
 tests/basic/oracle/new_array.res.oracle       |   7 -
 tests/basic/oracle/opt.res.oracle             |   2 -
 tests/basic/oracle/placement_new.res.oracle   |   7 +-
 tests/basic/oracle/pre_processed.res.oracle   |   2 -
 tests/basic/oracle/ptr_array_decls.res.oracle |   2 -
 tests/basic/oracle/ref_field.res.oracle       |   4 -
 tests/basic/oracle/sizeof.res.oracle          |   2 -
 tests/basic/oracle/static.res.oracle          |   5 +-
 tests/basic/oracle/static_1.res.oracle        |   2 -
 .../oracle/static_forward_decl.res.oracle     |   5 +-
 .../oracle/static_variable_bts1760.res.oracle |   2 -
 .../basic/oracle/switch_constexpr.res.oracle  |   2 -
 .../basic/oracle/template_inherits.res.oracle |   5 -
 tests/basic/oracle/test008.res.oracle         |   2 -
 tests/basic/oracle/union.res.oracle           |   2 -
 tests/basic/oracle/union3.res.oracle          |   2 -
 tests/basic/oracle/union_packed.res.oracle    |   2 -
 .../oracle/use_of_temps_bts1544.res.oracle    |   2 -
 tests/basic/oracle/vd.res.oracle              |   2 -
 tests/basic/oracle/vla.res.oracle             |   2 -
 tests/bugs/oracle/issue11.res.oracle          |   4 -
 tests/bugs/oracle/issue23.res.oracle          |   5 +-
 tests/class/oracle/array_init.res.oracle      |   2 -
 .../oracle/array_object_bts1739.res.oracle    |   2 -
 tests/class/oracle/cast_op.res.oracle         |   2 -
 tests/class/oracle/class_global.res.oracle    |   4 -
 tests/class/oracle/cleanups.res.oracle        |   4 -
 tests/class/oracle/constr.res.oracle          |   2 -
 tests/class/oracle/default_arg.res.oracle     |   2 -
 .../oracle/default_const_bts1527.res.oracle   |   2 -
 .../oracle/destructor_custom_2004.res.oracle  |   2 -
 .../oracle/diamond_inheritance.res.oracle     |   8 -
 .../oracle/empty_class_bts1547.res.oracle     |   4 -
 .../explicit_destructor_bts1528.res.oracle    |   2 -
 .../oracle/loop_local_var_bts1521.res.oracle  |   2 -
 tests/class/oracle/names.res.oracle           |   2 -
 tests/class/oracle/namespace.res.oracle       |   4 -
 tests/class/oracle/ostream_bts1752.res.oracle |   2 -
 .../oracle/overload_const_bts1541.res.oracle  |   2 -
 tests/class/oracle/rt_val.res.oracle          |   2 -
 tests/class/oracle/simple_classe.res.oracle   |   2 -
 tests/class/oracle/simple_private.res.oracle  |   2 -
 .../typedef_in_class_bts1540.res.oracle       |   2 -
 .../used_before_decl_bts1526.res.oracle       |   2 -
 .../oracle/virtual_inheritance.res.oracle     |   4 -
 .../virtual_inheritance_2077.res.oracle       |   7 -
 tests/exn/oracle/exn_typedef.res.oracle       |  13 --
 tests/exn/oracle/inheritance_catch.res.oracle |  11 -
 tests/pp/oracle/keyword.res.oracle            |   2 -
 tests/pp/oracle/sstruct.res.oracle            |   6 -
 tests/specs/oracle/addrof_field.res.oracle    |   2 -
 .../oracle/annot_in_class_bts1610.res.oracle  |   2 -
 tests/specs/oracle/class.res.oracle           |   2 -
 .../class_name_as_type_bts_1511.res.oracle    |   2 -
 .../oracle/clean_local_env_bts1605.res.oracle |   2 -
 .../contract_with_ref_bts1517.res.oracle      |   2 -
 .../external_logic_def_bts1512.res.oracle     |   2 -
 .../oracle/field_name_bts1513.res.oracle      |   2 -
 tests/specs/oracle/function_ptr.res.oracle    |   2 -
 .../oracle/global_or_class_annot.res.oracle   |   2 -
 tests/specs/oracle/inv.res.oracle             |   2 -
 tests/specs/oracle/logic_defs.res.oracle      |   2 -
 tests/specs/oracle/logic_label.res.oracle     |   2 -
 .../oracle/logic_member_function.res.oracle   |   4 -
 .../loop_inv_in_class_bts1543.res.oracle      |   2 -
 tests/specs/oracle/multiple_decls.res.oracle  |   4 -
 .../new_with_ptr_fields_bts1613.res.oracle    |   2 -
 .../operator_definition_bts1508.res.oracle    |   2 -
 .../oracle/parenthesis-bts1509.res.oracle     |   2 -
 tests/specs/oracle/result_bts1515.res.oracle  |   2 -
 .../oracle/this_in_spec_bts1534.res.oracle    |   2 -
 .../specs/oracle/typedef_acsl_2056.res.oracle |   2 -
 tests/stl/oracle/stl_algorithm.res.oracle     | 121 ----------
 tests/stl/oracle/stl_atomic.res.oracle        | 100 --------
 tests/stl/oracle/stl_bool.res.oracle          |  36 ---
 tests/stl/oracle/stl_functional.res.oracle    |  73 ------
 .../oracle/stl_initializer_list.res.oracle    |   2 -
 tests/stl/oracle/stl_iterator.res.oracle      |  54 -----
 tests/stl/oracle/stl_memory.res.oracle        |  60 -----
 .../stl_shared_ptr_mistake10.res.oracle       |  50 ----
 .../oracle/stl_shared_ptr_mistake5.res.oracle |  50 ----
 .../oracle/stl_shared_ptr_mistake6.res.oracle |  50 ----
 tests/stl/oracle/stl_system_error.res.oracle  |  38 ----
 tests/stl/oracle/stl_typeinfo.res.oracle      |   2 -
 tests/stl/oracle/stl_utility.res.oracle       | 215 ------------------
 tests/template/oracle/17_4_11.res.oracle      |   2 -
 .../oracle/class_in_template.res.oracle       |  10 -
 tests/template/oracle/fwd_decl.res.oracle     |   2 -
 tests/template/oracle/fwd_decl2.res.oracle    |   4 -
 ...lobal_var_instantiation_bts1552.res.oracle |   2 -
 tests/template/oracle/inner_class.res.oracle  |   2 -
 tests/template/oracle/logic_fct.res.oracle    |   2 -
 tests/template/oracle/namespace.res.oracle    |   4 -
 .../oracle/template_autofriend.res.oracle     |   6 -
 .../oracle/template_impl_arg.res.oracle       |   2 -
 .../oracle/template_of_template.res.oracle    |   4 -
 .../oracle/template_of_template2.res.oracle   |   4 -
 .../oracle/template_spec_bts1551.res.oracle   |   2 -
 .../oracle/template_variadic.res.oracle       |   6 -
 .../oracle/typedef_bts1531.res.oracle         |   2 -
 .../oracle/uninitialized_constants.res.oracle |   6 +-
 .../template/oracle/using_typedef.res.oracle  |   2 -
 tests/val_analysis/oracle/annot.res.oracle    |   2 -
 tests/val_analysis/oracle/cast_op.res.oracle  |   2 -
 tests/val_analysis/oracle/comment.res.oracle  |   2 -
 tests/val_analysis/oracle/copy_arg.res.oracle |   2 -
 .../oracle/empty_class.res.oracle             |   2 -
 .../val_analysis/oracle/logic_def.res.oracle  |   2 -
 .../val_analysis/oracle/namespace.res.oracle  |   4 -
 tests/val_analysis/oracle/nested.res.oracle   |   2 -
 tests/val_analysis/oracle/out_def.res.oracle  |   2 -
 tests/val_analysis/oracle/overload.res.oracle |   2 -
 tests/val_analysis/oracle/prune.res.oracle    |   2 -
 tests/val_analysis/oracle/ptr.res.oracle      |   2 -
 .../val_analysis/oracle/qualified.res.oracle  |   4 -
 tests/val_analysis/oracle/result.res.oracle   |   2 -
 tests/val_analysis/oracle/union.res.oracle    |   2 -
 .../oracle/union_struct.res.oracle            |   2 -
 .../oracle/virtual_base_sema.res.oracle       |   5 -
 137 files changed, 13 insertions(+), 1218 deletions(-)

diff --git a/convert.ml b/convert.ml
index c251a175..fb58f938 100644
--- a/convert.ml
+++ b/convert.ml
@@ -3640,6 +3640,9 @@ and convert_class_component (env, implicits, types, fields, others) meth =
       in
       if is_static typ.qualifier then begin
         let attrs = add_fc_destructor_attr env typ [] in
+        (* we have actually an extern declaration in C sense: its definition
+           might reside in another translation unit. *)
+        let base = SpecStorage EXTERN :: base in
         let name = Convert_env.qualify env name in
         let cname,_= Convert_env.typedef_normalize env name TStandard in
         let cname = Mangling.mangle cname TStandard None in
diff --git a/tests/basic/oracle/aggregate.res.oracle b/tests/basic/oracle/aggregate.res.oracle
index 3fb24a20..0ac5b64a 100644
--- a/tests/basic/oracle/aggregate.res.oracle
+++ b/tests/basic/oracle/aggregate.res.oracle
@@ -4,16 +4,12 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "B" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
   a[0..1] ∈ {0}
   b[0].x ∈ {7}
    [0].y ∈ {0}
@@ -59,10 +55,8 @@ struct B {
 };
 void A::Dtor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this, int _x, int _y)
 {
@@ -82,10 +76,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "B",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/anonymous_struct.res.oracle b/tests/basic/oracle/anonymous_struct.res.oracle
index 72812c72..9a80fe13 100644
--- a/tests/basic/oracle/anonymous_struct.res.oracle
+++ b/tests/basic/oracle/anonymous_struct.res.oracle
@@ -30,10 +30,8 @@ struct anonymous_class_1 {
 struct A {
    struct anonymous_class_1 anonymous_2 ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void A::Ctor(struct A const *this);
 
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
diff --git a/tests/basic/oracle/array_field.res.oracle b/tests/basic/oracle/array_field.res.oracle
index e6b189cc..5642641f 100644
--- a/tests/basic/oracle/array_field.res.oracle
+++ b/tests/basic/oracle/array_field.res.oracle
@@ -31,10 +31,8 @@ void *malloc(unsigned int size);
 
 void free(void *ptr);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void ArrayFieldTest::Ctor(struct ArrayFieldTest const *this)
 {
diff --git a/tests/basic/oracle/bitfields.res.oracle b/tests/basic/oracle/bitfields.res.oracle
index e9f35560..f77fbb9d 100644
--- a/tests/basic/oracle/bitfields.res.oracle
+++ b/tests/basic/oracle/bitfields.res.oracle
@@ -34,10 +34,8 @@ union anonymous_union_1 {
 struct C {
    union anonymous_union_1 anonymous_3 ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 long get_b(struct C *this)
 {
diff --git a/tests/basic/oracle/brace_or_equal_initializer.res.oracle b/tests/basic/oracle/brace_or_equal_initializer.res.oracle
index 87203f86..1b405e5e 100644
--- a/tests/basic/oracle/brace_or_equal_initializer.res.oracle
+++ b/tests/basic/oracle/brace_or_equal_initializer.res.oracle
@@ -29,10 +29,8 @@ struct Foo {
    int c ;
    int t[3] ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this, int x)
 {
diff --git a/tests/basic/oracle/c_link.res.oracle b/tests/basic/oracle/c_link.res.oracle
index 7d0032c4..f6e1a847 100644
--- a/tests/basic/oracle/c_link.res.oracle
+++ b/tests/basic/oracle/c_link.res.oracle
@@ -39,10 +39,8 @@ struct Foo *operator=(struct Foo *this, struct Foo *__frama_c_arg_0);
 
 void Foo::Dtor(struct Foo const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this)
 {
@@ -76,10 +74,8 @@ void Bar::Ctor(struct Bar const *this, struct Bar const *__frama_c_arg_0);
 
 void Bar::Dtor(struct Bar const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Bar::Ctor(struct Bar const *this)
 {
diff --git a/tests/basic/oracle/default_args.res.oracle b/tests/basic/oracle/default_args.res.oracle
index fbb0b238..8dd5f113 100644
--- a/tests/basic/oracle/default_args.res.oracle
+++ b/tests/basic/oracle/default_args.res.oracle
@@ -30,10 +30,8 @@ void A::Ctor(struct A const *this);
 
 void A::Dtor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this)
 {
diff --git a/tests/basic/oracle/delete_all_kind.res.oracle b/tests/basic/oracle/delete_all_kind.res.oracle
index 7f14756a..3075633e 100644
--- a/tests/basic/oracle/delete_all_kind.res.oracle
+++ b/tests/basic/oracle/delete_all_kind.res.oracle
@@ -47,10 +47,8 @@ void A::Ctor(struct A const *this);
 
 void A::Dtor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void A::delete(void *ptr)
 {
   return;
@@ -96,10 +94,8 @@ void B::Ctor(struct B const *this);
 
 void B::Dtor(struct B const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void B::Ctor(struct B const *this)
 {
diff --git a/tests/basic/oracle/forWithSimpleDecl.res.oracle b/tests/basic/oracle/forWithSimpleDecl.res.oracle
index a2531087..b8947399 100644
--- a/tests/basic/oracle/forWithSimpleDecl.res.oracle
+++ b/tests/basic/oracle/forWithSimpleDecl.res.oracle
@@ -29,10 +29,8 @@ struct s {
 };
 void s::Ctor(struct s const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void s::Ctor(struct s const *this)
 {
diff --git a/tests/basic/oracle/forward.res.oracle b/tests/basic/oracle/forward.res.oracle
index 58de1792..2f9a76be 100644
--- a/tests/basic/oracle/forward.res.oracle
+++ b/tests/basic/oracle/forward.res.oracle
@@ -29,19 +29,15 @@ struct B {
 struct A {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "B",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/gnu_body.res.oracle b/tests/basic/oracle/gnu_body.res.oracle
index 317391c9..be20db82 100644
--- a/tests/basic/oracle/gnu_body.res.oracle
+++ b/tests/basic/oracle/gnu_body.res.oracle
@@ -30,10 +30,8 @@ int f(int x);
 
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 int t3(struct A const *this);
 
 int id(struct A const *this, int x);
diff --git a/tests/basic/oracle/incomplete_type.res.oracle b/tests/basic/oracle/incomplete_type.res.oracle
index 79a2e8fa..288f9c53 100644
--- a/tests/basic/oracle/incomplete_type.res.oracle
+++ b/tests/basic/oracle/incomplete_type.res.oracle
@@ -39,10 +39,8 @@ void A::Ctor(struct A const *this);
 
 void A::Dtor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this)
 {
@@ -62,10 +60,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void B::Ctor(struct B const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void m_fn1(struct B *this, struct A **p1, long __frama_c_arg_1,
            unsigned int __frama_c_arg_2);
 
diff --git a/tests/basic/oracle/init.res.oracle b/tests/basic/oracle/init.res.oracle
index 31566ce0..c9baccad 100644
--- a/tests/basic/oracle/init.res.oracle
+++ b/tests/basic/oracle/init.res.oracle
@@ -31,19 +31,15 @@ struct myStruct {
    myArray a ;
 };
 typedef struct myStruct myStruct;
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "myStruct",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/method_translation_order_2064.res.oracle b/tests/basic/oracle/method_translation_order_2064.res.oracle
index 3a268c23..34f3757c 100644
--- a/tests/basic/oracle/method_translation_order_2064.res.oracle
+++ b/tests/basic/oracle/method_translation_order_2064.res.oracle
@@ -26,10 +26,8 @@ struct Point;
 struct Point {
    int xx ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     requires \valid(p); */
 void bar(struct Point *this, struct Point *p)
diff --git a/tests/basic/oracle/namespace.res.oracle b/tests/basic/oracle/namespace.res.oracle
index d991804c..6b109c88 100644
--- a/tests/basic/oracle/namespace.res.oracle
+++ b/tests/basic/oracle/namespace.res.oracle
@@ -35,10 +35,8 @@ union anonymous_union_2 {
 struct A {
    union anonymous_union_2 anonymous_1 ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 _Bool is_zero(struct A *this);
 
 _Bool is_foo(struct A *this);
diff --git a/tests/basic/oracle/new.res.oracle b/tests/basic/oracle/new.res.oracle
index 070fabdd..40ee0182 100644
--- a/tests/basic/oracle/new.res.oracle
+++ b/tests/basic/oracle/new.res.oracle
@@ -51,10 +51,8 @@ int glob(void)
 
 void Base::Ctor(struct Base const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Base::Ctor(struct Base const *this)
 {
@@ -68,11 +66,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void *A::new(unsigned int size);
 
 void m_fn2(struct A *this);
@@ -102,10 +97,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void B::Ctor(struct B const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void *B::new(unsigned int size)
 {
   void *__retres;
diff --git a/tests/basic/oracle/new_all_kind.res.oracle b/tests/basic/oracle/new_all_kind.res.oracle
index f6644467..ea911add 100644
--- a/tests/basic/oracle/new_all_kind.res.oracle
+++ b/tests/basic/oracle/new_all_kind.res.oracle
@@ -33,10 +33,8 @@ struct A {
 };
 void *malloc(unsigned int size);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this)
 {
diff --git a/tests/basic/oracle/new_array.res.oracle b/tests/basic/oracle/new_array.res.oracle
index 54bd9489..050ccc1e 100644
--- a/tests/basic/oracle/new_array.res.oracle
+++ b/tests/basic/oracle/new_array.res.oracle
@@ -49,10 +49,8 @@ int glob(void)
 
 void Base::Ctor(struct Base const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Base::Ctor(struct Base const *this)
 {
@@ -66,11 +64,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void *A::new[](unsigned int size);
 
 void m_fn2(struct A *this);
@@ -109,10 +104,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void B::Ctor(struct B const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void *B::new[](unsigned int size)
 {
   void *__retres;
diff --git a/tests/basic/oracle/opt.res.oracle b/tests/basic/oracle/opt.res.oracle
index 08cda746..4b43bf3e 100644
--- a/tests/basic/oracle/opt.res.oracle
+++ b/tests/basic/oracle/opt.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct option {
    int val ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "option",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/placement_new.res.oracle b/tests/basic/oracle/placement_new.res.oracle
index 29c6ca16..e381dcf6 100644
--- a/tests/basic/oracle/placement_new.res.oracle
+++ b/tests/basic/oracle/placement_new.res.oracle
@@ -1109,10 +1109,8 @@ int posix_memalign(void **memptr, size_t alignment, size_t size);
  */
 int mkstemp(char *templat);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void T::Ctor(struct T const *this)
 {
@@ -1125,11 +1123,10 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-int id;
+extern int id;
+
 void *U::new(size_t s, int x)
 {
   void *tmp;
diff --git a/tests/basic/oracle/pre_processed.res.oracle b/tests/basic/oracle/pre_processed.res.oracle
index 5a2462bb..b861598d 100644
--- a/tests/basic/oracle/pre_processed.res.oracle
+++ b/tests/basic/oracle/pre_processed.res.oracle
@@ -26,10 +26,8 @@ struct A;
 struct A {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this, int _x)
 {
diff --git a/tests/basic/oracle/ptr_array_decls.res.oracle b/tests/basic/oracle/ptr_array_decls.res.oracle
index b81974ba..c230879b 100644
--- a/tests/basic/oracle/ptr_array_decls.res.oracle
+++ b/tests/basic/oracle/ptr_array_decls.res.oracle
@@ -26,10 +26,8 @@ struct S0 {
    int f0 ;
    int f1 ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "S0",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/ref_field.res.oracle b/tests/basic/oracle/ref_field.res.oracle
index 427d5f77..179038c6 100644
--- a/tests/basic/oracle/ref_field.res.oracle
+++ b/tests/basic/oracle/ref_field.res.oracle
@@ -30,10 +30,8 @@ struct T;
 struct T {
    int j ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(r); */
 void S::Ctor(struct S const *this, int *r)
@@ -54,10 +52,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(r); */
 void T::Ctor(struct T const *this, int *r)
diff --git a/tests/basic/oracle/sizeof.res.oracle b/tests/basic/oracle/sizeof.res.oracle
index a77e0e79..387b3e23 100644
--- a/tests/basic/oracle/sizeof.res.oracle
+++ b/tests/basic/oracle/sizeof.res.oracle
@@ -38,10 +38,8 @@ struct C {
 };
 void C::Ctor(struct C const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void C::Ctor(struct C const *this)
 {
diff --git a/tests/basic/oracle/static.res.oracle b/tests/basic/oracle/static.res.oracle
index d3fa880f..5eba2f06 100644
--- a/tests/basic/oracle/static.res.oracle
+++ b/tests/basic/oracle/static.res.oracle
@@ -22,11 +22,10 @@ struct _frama_c_rtti_name_info_node {
    int number_of_base_classes ;
    struct _frama_c_vmt *pvmt ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-int volatile y;
+extern int volatile y;
+
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/static_1.res.oracle b/tests/basic/oracle/static_1.res.oracle
index 61de7cab..277ce302 100644
--- a/tests/basic/oracle/static_1.res.oracle
+++ b/tests/basic/oracle/static_1.res.oracle
@@ -29,10 +29,8 @@ struct _frama_c_rtti_name_info_node {
    int number_of_base_classes ;
    struct _frama_c_vmt *pvmt ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 int cache;
 
 int get(void)
diff --git a/tests/basic/oracle/static_forward_decl.res.oracle b/tests/basic/oracle/static_forward_decl.res.oracle
index 3b75b0c1..aee10a84 100644
--- a/tests/basic/oracle/static_forward_decl.res.oracle
+++ b/tests/basic/oracle/static_forward_decl.res.oracle
@@ -25,13 +25,12 @@ struct _frama_c_rtti_name_info_node {
 struct S {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 unsigned int f(struct S *this);
 
-unsigned int c;
+extern unsigned int c;
+
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "S",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/static_variable_bts1760.res.oracle b/tests/basic/oracle/static_variable_bts1760.res.oracle
index c926f0fc..2b2a1c49 100644
--- a/tests/basic/oracle/static_variable_bts1760.res.oracle
+++ b/tests/basic/oracle/static_variable_bts1760.res.oracle
@@ -32,10 +32,8 @@ void foo(void)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void bar(struct C *this);
 
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
diff --git a/tests/basic/oracle/switch_constexpr.res.oracle b/tests/basic/oracle/switch_constexpr.res.oracle
index e6c95afb..1cc54507 100644
--- a/tests/basic/oracle/switch_constexpr.res.oracle
+++ b/tests/basic/oracle/switch_constexpr.res.oracle
@@ -26,10 +26,8 @@ struct A;
 struct A {
    int m ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this, _Bool b)
 {
diff --git a/tests/basic/oracle/template_inherits.res.oracle b/tests/basic/oracle/template_inherits.res.oracle
index 24b29b24..d5e746a8 100644
--- a/tests/basic/oracle/template_inherits.res.oracle
+++ b/tests/basic/oracle/template_inherits.res.oracle
@@ -34,10 +34,8 @@ void free(void *ptr);
 
 void A<B>::Dtor(struct A<B> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void m_fn1(struct A<B> *this);
 
 /*@ requires \valid_read(this); */
@@ -48,11 +46,8 @@ void A<B>::Dtor(struct A<B> const *this)
 
 void B::Dtor(struct B const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void B::Dtor(struct B const *this)
 {
diff --git a/tests/basic/oracle/test008.res.oracle b/tests/basic/oracle/test008.res.oracle
index 4bedcb95..f9477d69 100644
--- a/tests/basic/oracle/test008.res.oracle
+++ b/tests/basic/oracle/test008.res.oracle
@@ -33,10 +33,8 @@ int f(int x)
   return __retres;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this, int a)
 {
diff --git a/tests/basic/oracle/union.res.oracle b/tests/basic/oracle/union.res.oracle
index f2ed737b..f3246b5d 100644
--- a/tests/basic/oracle/union.res.oracle
+++ b/tests/basic/oracle/union.res.oracle
@@ -26,10 +26,8 @@ union foo {
    int i ;
    void *p ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 int as_int_pointer(union foo *this);
 
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
diff --git a/tests/basic/oracle/union3.res.oracle b/tests/basic/oracle/union3.res.oracle
index 55faf509..983de1f3 100644
--- a/tests/basic/oracle/union3.res.oracle
+++ b/tests/basic/oracle/union3.res.oracle
@@ -29,10 +29,8 @@ union anonymous_union_1 {
 struct foo {
    union anonymous_union_1 anonymous_2 ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "foo",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/basic/oracle/union_packed.res.oracle b/tests/basic/oracle/union_packed.res.oracle
index a171f5a5..f58957bc 100644
--- a/tests/basic/oracle/union_packed.res.oracle
+++ b/tests/basic/oracle/union_packed.res.oracle
@@ -40,10 +40,8 @@ struct A {
 };
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct A nil(void);
 
 struct A one(void);
diff --git a/tests/basic/oracle/use_of_temps_bts1544.res.oracle b/tests/basic/oracle/use_of_temps_bts1544.res.oracle
index 101a4a13..b5b021b3 100644
--- a/tests/basic/oracle/use_of_temps_bts1544.res.oracle
+++ b/tests/basic/oracle/use_of_temps_bts1544.res.oracle
@@ -30,10 +30,8 @@ void cl::Ctor(struct cl const *this, struct cl const *__frama_c_arg_0);
 
 void cl::Dtor(struct cl const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \separated(this, __frama_c_arg_0);
     requires \valid_read(this);
     requires \valid_read(__frama_c_arg_0);
diff --git a/tests/basic/oracle/vd.res.oracle b/tests/basic/oracle/vd.res.oracle
index b6a0f0a5..21862dc2 100644
--- a/tests/basic/oracle/vd.res.oracle
+++ b/tests/basic/oracle/vd.res.oracle
@@ -28,10 +28,8 @@ struct A {
 };
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 int f(struct A *this)
 {
diff --git a/tests/basic/oracle/vla.res.oracle b/tests/basic/oracle/vla.res.oracle
index 2efa367b..95462738 100644
--- a/tests/basic/oracle/vla.res.oracle
+++ b/tests/basic/oracle/vla.res.oracle
@@ -27,10 +27,8 @@ typedef long Paddr;
 struct A {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void m_fn1(struct A const *this, Paddr __frama_c_arg_0,
            unsigned int __frama_c_arg_1);
 
diff --git a/tests/bugs/oracle/issue11.res.oracle b/tests/bugs/oracle/issue11.res.oracle
index e42f07bc..36e99bc3 100644
--- a/tests/bugs/oracle/issue11.res.oracle
+++ b/tests/bugs/oracle/issue11.res.oracle
@@ -38,10 +38,8 @@ struct b<char> {
 };
 void b<void>::Ctor(struct b<void> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void b<void>::Ctor(struct b<void> const *this)
 {
@@ -55,10 +53,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void b<char>::Ctor(struct b<char> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void b<char>::Ctor(struct b<char> const *this)
 {
diff --git a/tests/bugs/oracle/issue23.res.oracle b/tests/bugs/oracle/issue23.res.oracle
index 4648dadf..9ec4dda3 100644
--- a/tests/bugs/oracle/issue23.res.oracle
+++ b/tests/bugs/oracle/issue23.res.oracle
@@ -30,11 +30,10 @@ struct _frama_c_rtti_name_info_node {
    int number_of_base_classes ;
    struct _frama_c_vmt *pvmt ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-int i;
+extern int i;
+
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "C",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/class/oracle/array_init.res.oracle b/tests/class/oracle/array_init.res.oracle
index c9c49aca..dc511d23 100644
--- a/tests/class/oracle/array_init.res.oracle
+++ b/tests/class/oracle/array_init.res.oracle
@@ -29,10 +29,8 @@ struct A {
 };
 void A::Dtor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this, int _x, int _y)
 {
diff --git a/tests/class/oracle/array_object_bts1739.res.oracle b/tests/class/oracle/array_object_bts1739.res.oracle
index f6e7fb6f..9d1c8f4a 100644
--- a/tests/class/oracle/array_object_bts1739.res.oracle
+++ b/tests/class/oracle/array_object_bts1739.res.oracle
@@ -28,10 +28,8 @@ struct vector {
 };
 void vector::Ctor(struct vector const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void vector::Ctor(struct vector const *this)
 {
diff --git a/tests/class/oracle/cast_op.res.oracle b/tests/class/oracle/cast_op.res.oracle
index 006bf33b..137df2d8 100644
--- a/tests/class/oracle/cast_op.res.oracle
+++ b/tests/class/oracle/cast_op.res.oracle
@@ -26,10 +26,8 @@ struct A;
 struct A {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this)
 {
diff --git a/tests/class/oracle/class_global.res.oracle b/tests/class/oracle/class_global.res.oracle
index f4c72920..32f22f75 100644
--- a/tests/class/oracle/class_global.res.oracle
+++ b/tests/class/oracle/class_global.res.oracle
@@ -33,10 +33,8 @@ struct Foo {
 };
 void Bar::Dtor(struct Bar const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Bar::Ctor(struct Bar const *this, int x)
 {
@@ -57,10 +55,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void Foo::Dtor(struct Foo const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this)
 {
diff --git a/tests/class/oracle/cleanups.res.oracle b/tests/class/oracle/cleanups.res.oracle
index 391e59e9..267c1e25 100644
--- a/tests/class/oracle/cleanups.res.oracle
+++ b/tests/class/oracle/cleanups.res.oracle
@@ -52,10 +52,8 @@ char *strdup(char const *__frama_c_arg_0);
 
 void StringRepository::Dtor(struct StringRepository const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void StringRepository::Ctor(struct StringRepository const *this,
                             char *support)
@@ -92,10 +90,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void String::Ctor(struct String const *this, char const *support)
 {
diff --git a/tests/class/oracle/constr.res.oracle b/tests/class/oracle/constr.res.oracle
index 9bc61b03..6f0a9e5a 100644
--- a/tests/class/oracle/constr.res.oracle
+++ b/tests/class/oracle/constr.res.oracle
@@ -30,10 +30,8 @@ struct Foo *operator=(struct Foo *this, struct Foo *__frama_c_arg_0);
 
 void Foo::Dtor(struct Foo const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this, int a)
 {
diff --git a/tests/class/oracle/default_arg.res.oracle b/tests/class/oracle/default_arg.res.oracle
index dfc62009..4630019b 100644
--- a/tests/class/oracle/default_arg.res.oracle
+++ b/tests/class/oracle/default_arg.res.oracle
@@ -30,10 +30,8 @@ void Foo::Ctor(struct Foo const *this, struct Foo const *__frama_c_arg_0);
 
 void Foo::Dtor(struct Foo const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this)
 {
diff --git a/tests/class/oracle/default_const_bts1527.res.oracle b/tests/class/oracle/default_const_bts1527.res.oracle
index 07d201ba..abac4421 100644
--- a/tests/class/oracle/default_const_bts1527.res.oracle
+++ b/tests/class/oracle/default_const_bts1527.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Point2 {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Point2::Ctor(struct Point2 const *this)
 {
diff --git a/tests/class/oracle/destructor_custom_2004.res.oracle b/tests/class/oracle/destructor_custom_2004.res.oracle
index 455d75a1..b6bb6cb0 100644
--- a/tests/class/oracle/destructor_custom_2004.res.oracle
+++ b/tests/class/oracle/destructor_custom_2004.res.oracle
@@ -28,10 +28,8 @@ struct cls {
 };
 void cls::Ctor(struct cls const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void cls::Dtor(struct cls const *this)
 {
diff --git a/tests/class/oracle/diamond_inheritance.res.oracle b/tests/class/oracle/diamond_inheritance.res.oracle
index 9b8920ff..1f9553bb 100644
--- a/tests/class/oracle/diamond_inheritance.res.oracle
+++ b/tests/class/oracle/diamond_inheritance.res.oracle
@@ -341,10 +341,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
    .rtti_info = & _frama_c_rtti_name_info};
 void basic_stringbuf<char>::Dtor(struct basic_stringbuf<char> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void basic_stringbuf<char>::Ctor(struct basic_stringbuf<char> const *this,
                                  enum openmode mode)
@@ -384,7 +382,6 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
@@ -479,7 +476,6 @@ void basic_istringstream<char>::Dtor(struct basic_istringstream<char> const *thi
 
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[2];
@@ -597,7 +593,6 @@ struct _frama_c_vmt _frama_c_vmt_header =
    .rtti_info = & _frama_c_rtti_name_info};
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
@@ -694,7 +689,6 @@ void basic_ostringstream<char>::Dtor(struct basic_ostringstream<char> const *thi
 
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[2];
@@ -814,7 +808,6 @@ struct _frama_c_vmt _frama_c_vmt_header;
 
 struct _frama_c_vmt _frama_c_vmt_header_for_shift_2;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[3];
@@ -1002,7 +995,6 @@ struct _frama_c_vmt _frama_c_vmt_header;
 
 struct _frama_c_vmt _frama_c_vmt_header_for_shift_2;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[3];
diff --git a/tests/class/oracle/empty_class_bts1547.res.oracle b/tests/class/oracle/empty_class_bts1547.res.oracle
index a47c2921..95b0c2cf 100644
--- a/tests/class/oracle/empty_class_bts1547.res.oracle
+++ b/tests/class/oracle/empty_class_bts1547.res.oracle
@@ -32,10 +32,8 @@ struct vector {
 };
 void allocator::Ctor(struct allocator const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void allocator::Ctor(struct allocator const *this)
 {
@@ -49,10 +47,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void vector::Ctor(struct vector const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void foo(struct vector *this);
 
 /*@ requires \valid_read(this); */
diff --git a/tests/class/oracle/explicit_destructor_bts1528.res.oracle b/tests/class/oracle/explicit_destructor_bts1528.res.oracle
index a27f1d95..38679d24 100644
--- a/tests/class/oracle/explicit_destructor_bts1528.res.oracle
+++ b/tests/class/oracle/explicit_destructor_bts1528.res.oracle
@@ -29,10 +29,8 @@ struct Point {
 void Point::Ctor(struct Point const *this,
                  struct Point const *__frama_c_arg_0);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Point::Dtor(struct Point const *this)
 {
diff --git a/tests/class/oracle/loop_local_var_bts1521.res.oracle b/tests/class/oracle/loop_local_var_bts1521.res.oracle
index aeafd8e6..b581f8c0 100644
--- a/tests/class/oracle/loop_local_var_bts1521.res.oracle
+++ b/tests/class/oracle/loop_local_var_bts1521.res.oracle
@@ -29,10 +29,8 @@ struct iterator {
 void iterator::Ctor(struct iterator const *this,
                     struct iterator const *__frama_c_arg_0);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \separated(this, __frama_c_arg_0);
     requires \valid_read(this);
     requires \valid_read(__frama_c_arg_0);
diff --git a/tests/class/oracle/names.res.oracle b/tests/class/oracle/names.res.oracle
index e4f99465..7d982ed8 100644
--- a/tests/class/oracle/names.res.oracle
+++ b/tests/class/oracle/names.res.oracle
@@ -28,10 +28,8 @@ struct A {
 };
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 int g(struct A *this);
 
 /*@ requires \valid_read(this); */
diff --git a/tests/class/oracle/namespace.res.oracle b/tests/class/oracle/namespace.res.oracle
index f40c9502..ad6ee899 100644
--- a/tests/class/oracle/namespace.res.oracle
+++ b/tests/class/oracle/namespace.res.oracle
@@ -28,19 +28,15 @@ struct A {
 struct B {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 int foo(struct B *this, struct A x)
 {
diff --git a/tests/class/oracle/ostream_bts1752.res.oracle b/tests/class/oracle/ostream_bts1752.res.oracle
index 7d1b3f1f..5544de75 100644
--- a/tests/class/oracle/ostream_bts1752.res.oracle
+++ b/tests/class/oracle/ostream_bts1752.res.oracle
@@ -32,10 +32,8 @@ void ostream::Ctor(struct ostream const *this);
 
 void ostream::Dtor(struct ostream const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 struct ostream operator<<(struct ostream *this, char const *__frama_c_arg_0);
 
diff --git a/tests/class/oracle/overload_const_bts1541.res.oracle b/tests/class/oracle/overload_const_bts1541.res.oracle
index ebb3aed5..5dc8cd89 100644
--- a/tests/class/oracle/overload_const_bts1541.res.oracle
+++ b/tests/class/oracle/overload_const_bts1541.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct array {
    int elems[9] ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     ensures \valid(\result); */
 int *operator[](struct array *this, int i)
diff --git a/tests/class/oracle/rt_val.res.oracle b/tests/class/oracle/rt_val.res.oracle
index 49239653..83acd73d 100644
--- a/tests/class/oracle/rt_val.res.oracle
+++ b/tests/class/oracle/rt_val.res.oracle
@@ -28,10 +28,8 @@ struct Foo {
 };
 void Foo::Dtor(struct Foo const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo::Ctor(struct Foo const *this, int _x)
 {
diff --git a/tests/class/oracle/simple_classe.res.oracle b/tests/class/oracle/simple_classe.res.oracle
index 4c4157ca..d234b99a 100644
--- a/tests/class/oracle/simple_classe.res.oracle
+++ b/tests/class/oracle/simple_classe.res.oracle
@@ -30,10 +30,8 @@ struct Point {
 void Point::Ctor(struct Point const *this,
                  struct Point const *__frama_c_arg_0);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Point::Ctor(struct Point const *this)
 {
diff --git a/tests/class/oracle/simple_private.res.oracle b/tests/class/oracle/simple_private.res.oracle
index 51fdc765..5f62b8b6 100644
--- a/tests/class/oracle/simple_private.res.oracle
+++ b/tests/class/oracle/simple_private.res.oracle
@@ -26,10 +26,8 @@ struct A;
 struct A {
    int v ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ predicate P(struct A \this) = \this.v ≡ 0;
  */
 /*@ type invariant Pos(struct A \this) = \this.v ≥ 0;
diff --git a/tests/class/oracle/typedef_in_class_bts1540.res.oracle b/tests/class/oracle/typedef_in_class_bts1540.res.oracle
index 8fe42fb9..f34add65 100644
--- a/tests/class/oracle/typedef_in_class_bts1540.res.oracle
+++ b/tests/class/oracle/typedef_in_class_bts1540.res.oracle
@@ -27,10 +27,8 @@ typedef int *reference;
 struct array {
    pointer x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     requires \valid(x); */
 void foo(struct array *this, reference x)
diff --git a/tests/class/oracle/used_before_decl_bts1526.res.oracle b/tests/class/oracle/used_before_decl_bts1526.res.oracle
index 21f738c9..b164e809 100644
--- a/tests/class/oracle/used_before_decl_bts1526.res.oracle
+++ b/tests/class/oracle/used_before_decl_bts1526.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct intQueue {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 int tryEnqueue(struct intQueue *this);
 
 /*@ requires \valid(this); */
diff --git a/tests/class/oracle/virtual_inheritance.res.oracle b/tests/class/oracle/virtual_inheritance.res.oracle
index 1c7b55ae..0b32e829 100644
--- a/tests/class/oracle/virtual_inheritance.res.oracle
+++ b/tests/class/oracle/virtual_inheritance.res.oracle
@@ -307,10 +307,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
    .rtti_info = & _frama_c_rtti_name_info};
 void basic_stringbuf<char>::Dtor(struct basic_stringbuf<char> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void basic_stringbuf<char>::Ctor(struct basic_stringbuf<char> const *this,
                                  enum openmode mode)
@@ -335,7 +333,6 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
@@ -420,7 +417,6 @@ void basic_istringstream<char>::Dtor(struct basic_istringstream<char> const *thi
 
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[2];
diff --git a/tests/class/oracle/virtual_inheritance_2077.res.oracle b/tests/class/oracle/virtual_inheritance_2077.res.oracle
index 92051dbe..23c76028 100644
--- a/tests/class/oracle/virtual_inheritance_2077.res.oracle
+++ b/tests/class/oracle/virtual_inheritance_2077.res.oracle
@@ -45,20 +45,15 @@ struct D {
    struct _frama_c_vmt *pvmt ;
    struct A _frama_c__Z1A ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "B",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -66,7 +61,6 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
@@ -317,7 +311,6 @@ struct _frama_c_vmt _frama_c_vmt_header =
    .rtti_info = & _frama_c_rtti_name_info};
 struct _frama_c_vmt _frama_c_vmt_header;
 
-struct _frama_c_vmt _frama_c_vmt_header_for_shift_0;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
 struct _frama_c_rtti_name_info_content _frama_c_base_classes[3];
diff --git a/tests/exn/oracle/exn_typedef.res.oracle b/tests/exn/oracle/exn_typedef.res.oracle
index fac56916..826ea001 100644
--- a/tests/exn/oracle/exn_typedef.res.oracle
+++ b/tests/exn/oracle/exn_typedef.res.oracle
@@ -68,10 +68,8 @@ struct __fc_exn_struct __fc_exn =
    .exn_kind = 0,
    .exn_obj = {.__fc_S_ZN9templatedE1BIiE = {._frama_c__ZN9templatedE1AIiE = {
                                              .x = 0}}}};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this, int _x)
 {
@@ -79,11 +77,8 @@ void A::Ctor(struct A const *this, int _x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void B::Ctor(struct B const *this, int _x)
 {
@@ -91,11 +86,8 @@ void B::Ctor(struct B const *this, int _x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void E::Ctor(struct E const *this, int _x)
 {
@@ -256,10 +248,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A<int>::Ctor(struct A<int> const *this, int _x)
 {
@@ -272,11 +262,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void B<int>::Ctor(struct B<int> const *this, int _x)
 {
diff --git a/tests/exn/oracle/inheritance_catch.res.oracle b/tests/exn/oracle/inheritance_catch.res.oracle
index 5e8f1e1c..14d77c61 100644
--- a/tests/exn/oracle/inheritance_catch.res.oracle
+++ b/tests/exn/oracle/inheritance_catch.res.oracle
@@ -61,10 +61,8 @@ struct __fc_exn_struct __fc_exn =
    .exn_kind = 0,
    .exn_obj = {.__fc_S_Z1D = {._frama_c__Z1B = {._frama_c__Z1A = {.x = 0}},
                               ._frama_c__Z1C = {._frama_c__Z1A = {.x = 0}}}}};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this, int _x)
 {
@@ -77,11 +75,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void B::Ctor(struct B const *this, int _x)
 {
@@ -94,11 +89,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void C::Ctor(struct C const *this, int _x)
 {
@@ -111,11 +103,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[2];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void D::Ctor(struct D const *this, int _x)
 {
diff --git a/tests/pp/oracle/keyword.res.oracle b/tests/pp/oracle/keyword.res.oracle
index 86885881..222c2e54 100644
--- a/tests/pp/oracle/keyword.res.oracle
+++ b/tests/pp/oracle/keyword.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct A {
    char *p ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/pp/oracle/sstruct.res.oracle b/tests/pp/oracle/sstruct.res.oracle
index 179cacdb..d6ce3612 100644
--- a/tests/pp/oracle/sstruct.res.oracle
+++ b/tests/pp/oracle/sstruct.res.oracle
@@ -32,28 +32,22 @@ union tu {
    int z ;
    float f ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "tm",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "tc",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "tu",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/addrof_field.res.oracle b/tests/specs/oracle/addrof_field.res.oracle
index 4978169f..1ae801fb 100644
--- a/tests/specs/oracle/addrof_field.res.oracle
+++ b/tests/specs/oracle/addrof_field.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct A {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/annot_in_class_bts1610.res.oracle b/tests/specs/oracle/annot_in_class_bts1610.res.oracle
index 9c0295e1..6e7c5592 100644
--- a/tests/specs/oracle/annot_in_class_bts1610.res.oracle
+++ b/tests/specs/oracle/annot_in_class_bts1610.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Queue {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "Queue",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/class.res.oracle b/tests/specs/oracle/class.res.oracle
index b8db25c7..f7d3ae18 100644
--- a/tests/specs/oracle/class.res.oracle
+++ b/tests/specs/oracle/class.res.oracle
@@ -26,10 +26,8 @@ struct A {
    int x ;
    int y ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ predicate foo(struct A \this) ;
  */
 /*@ logic int bar(struct A \this) ;
diff --git a/tests/specs/oracle/class_name_as_type_bts_1511.res.oracle b/tests/specs/oracle/class_name_as_type_bts_1511.res.oracle
index fd1fd8c1..b9b59c65 100644
--- a/tests/specs/oracle/class_name_as_type_bts_1511.res.oracle
+++ b/tests/specs/oracle/class_name_as_type_bts_1511.res.oracle
@@ -26,10 +26,8 @@ struct Cl;
 struct Cl {
    int a ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@
 logic _Bool non0(struct Cl \this, struct Cl x) = (_Bool)(x.a ≢ 0? 1: 0);
  */
diff --git a/tests/specs/oracle/clean_local_env_bts1605.res.oracle b/tests/specs/oracle/clean_local_env_bts1605.res.oracle
index 87ac43a5..a3c834ce 100644
--- a/tests/specs/oracle/clean_local_env_bts1605.res.oracle
+++ b/tests/specs/oracle/clean_local_env_bts1605.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Queue {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "Queue",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/contract_with_ref_bts1517.res.oracle b/tests/specs/oracle/contract_with_ref_bts1517.res.oracle
index 8a85a5e1..24dd44cf 100644
--- a/tests/specs/oracle/contract_with_ref_bts1517.res.oracle
+++ b/tests/specs/oracle/contract_with_ref_bts1517.res.oracle
@@ -26,10 +26,8 @@ struct Point2;
 struct Point2 {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     requires \valid(p);
     requires p->x < 1000; */
diff --git a/tests/specs/oracle/external_logic_def_bts1512.res.oracle b/tests/specs/oracle/external_logic_def_bts1512.res.oracle
index 11630ae8..ff55471d 100644
--- a/tests/specs/oracle/external_logic_def_bts1512.res.oracle
+++ b/tests/specs/oracle/external_logic_def_bts1512.res.oracle
@@ -26,10 +26,8 @@ struct Cl;
 struct Cl {
    int a ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 _Bool non0(struct Cl *this, struct Cl x);
 
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
diff --git a/tests/specs/oracle/field_name_bts1513.res.oracle b/tests/specs/oracle/field_name_bts1513.res.oracle
index 0b568ad5..7345b2cc 100644
--- a/tests/specs/oracle/field_name_bts1513.res.oracle
+++ b/tests/specs/oracle/field_name_bts1513.res.oracle
@@ -26,10 +26,8 @@ struct Point2;
 struct Point2 {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \separated(this, p);
     requires \valid_read(this);
     requires \valid_read(p);
diff --git a/tests/specs/oracle/function_ptr.res.oracle b/tests/specs/oracle/function_ptr.res.oracle
index cedfe96d..3ad14700 100644
--- a/tests/specs/oracle/function_ptr.res.oracle
+++ b/tests/specs/oracle/function_ptr.res.oracle
@@ -26,10 +26,8 @@ struct A;
 struct A {
    void (*f)(void) ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void f1(void)
 {
   return;
diff --git a/tests/specs/oracle/global_or_class_annot.res.oracle b/tests/specs/oracle/global_or_class_annot.res.oracle
index 89fde1e9..019d4d74 100644
--- a/tests/specs/oracle/global_or_class_annot.res.oracle
+++ b/tests/specs/oracle/global_or_class_annot.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct S {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "S",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/inv.res.oracle b/tests/specs/oracle/inv.res.oracle
index f6586f22..c0f8d875 100644
--- a/tests/specs/oracle/inv.res.oracle
+++ b/tests/specs/oracle/inv.res.oracle
@@ -27,10 +27,8 @@ struct A {
 };
 /*@ type foo;
  */
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "A",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/logic_defs.res.oracle b/tests/specs/oracle/logic_defs.res.oracle
index a4d02f06..dc97895f 100644
--- a/tests/specs/oracle/logic_defs.res.oracle
+++ b/tests/specs/oracle/logic_defs.res.oracle
@@ -28,10 +28,8 @@ struct A {
 };
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this)
 {
diff --git a/tests/specs/oracle/logic_label.res.oracle b/tests/specs/oracle/logic_label.res.oracle
index 20a4eb23..3fd1a57c 100644
--- a/tests/specs/oracle/logic_label.res.oracle
+++ b/tests/specs/oracle/logic_label.res.oracle
@@ -41,10 +41,8 @@ axiomatic a {
   }
 
 */
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     ensures foo(&\old(this)->x) ≡ foo(\at(&this->x,Pre));
  */
diff --git a/tests/specs/oracle/logic_member_function.res.oracle b/tests/specs/oracle/logic_member_function.res.oracle
index a17a4e33..68c1ceab 100644
--- a/tests/specs/oracle/logic_member_function.res.oracle
+++ b/tests/specs/oracle/logic_member_function.res.oracle
@@ -29,10 +29,8 @@ struct A {
 union U {
    int i ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ logic int V(struct A \this) = \this.val;
  */
 /*@ requires \valid_read(this); */
@@ -77,10 +75,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ predicate foo(union U \this) = \this.i ≡ 0;
 
 */
diff --git a/tests/specs/oracle/loop_inv_in_class_bts1543.res.oracle b/tests/specs/oracle/loop_inv_in_class_bts1543.res.oracle
index 1d4faff7..1574008b 100644
--- a/tests/specs/oracle/loop_inv_in_class_bts1543.res.oracle
+++ b/tests/specs/oracle/loop_inv_in_class_bts1543.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct int_array3 {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 void foo(struct int_array3 *this)
 {
diff --git a/tests/specs/oracle/multiple_decls.res.oracle b/tests/specs/oracle/multiple_decls.res.oracle
index d9827b05..bf0e6c18 100644
--- a/tests/specs/oracle/multiple_decls.res.oracle
+++ b/tests/specs/oracle/multiple_decls.res.oracle
@@ -30,10 +30,8 @@ struct Point {
 struct Queue {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void foo(struct Point *this);
 
 /*@ requires \valid(this); */
@@ -55,10 +53,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void pop(struct Queue *this);
 
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
diff --git a/tests/specs/oracle/new_with_ptr_fields_bts1613.res.oracle b/tests/specs/oracle/new_with_ptr_fields_bts1613.res.oracle
index aa0cf7b9..84a4899e 100644
--- a/tests/specs/oracle/new_with_ptr_fields_bts1613.res.oracle
+++ b/tests/specs/oracle/new_with_ptr_fields_bts1613.res.oracle
@@ -31,10 +31,8 @@ void *malloc(unsigned int size);
 
 void node::Ctor(struct node const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void node::Ctor(struct node const *this)
 {
diff --git a/tests/specs/oracle/operator_definition_bts1508.res.oracle b/tests/specs/oracle/operator_definition_bts1508.res.oracle
index 370ba3c4..8451e17b 100644
--- a/tests/specs/oracle/operator_definition_bts1508.res.oracle
+++ b/tests/specs/oracle/operator_definition_bts1508.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Cl {
    int a ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "Cl",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/parenthesis-bts1509.res.oracle b/tests/specs/oracle/parenthesis-bts1509.res.oracle
index 2729d6b2..c24afaeb 100644
--- a/tests/specs/oracle/parenthesis-bts1509.res.oracle
+++ b/tests/specs/oracle/parenthesis-bts1509.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Cl {
    int a ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "Cl",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/specs/oracle/result_bts1515.res.oracle b/tests/specs/oracle/result_bts1515.res.oracle
index b76cd5e8..c4b6f153 100644
--- a/tests/specs/oracle/result_bts1515.res.oracle
+++ b/tests/specs/oracle/result_bts1515.res.oracle
@@ -26,10 +26,8 @@ struct Point2;
 struct Point2 {
    
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     ensures \valid(\result);
     ensures *\result ≡ *\old(this);
diff --git a/tests/specs/oracle/this_in_spec_bts1534.res.oracle b/tests/specs/oracle/this_in_spec_bts1534.res.oracle
index aab705c2..cffe4027 100644
--- a/tests/specs/oracle/this_in_spec_bts1534.res.oracle
+++ b/tests/specs/oracle/this_in_spec_bts1534.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct foo {
    int a ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     assigns \result;
     assigns \result \from *this; */
diff --git a/tests/specs/oracle/typedef_acsl_2056.res.oracle b/tests/specs/oracle/typedef_acsl_2056.res.oracle
index 1d6f790c..f16e4880 100644
--- a/tests/specs/oracle/typedef_acsl_2056.res.oracle
+++ b/tests/specs/oracle/typedef_acsl_2056.res.oracle
@@ -26,10 +26,8 @@ typedef int value_type;
 struct A {
    int val ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ logic value_type data(struct A \this) = (value_type)\this.val;
  */
 /*@ requires \valid(this);
diff --git a/tests/stl/oracle/stl_algorithm.res.oracle b/tests/stl/oracle/stl_algorithm.res.oracle
index cb1bcd15..50bb0f11 100644
--- a/tests/stl/oracle/stl_algorithm.res.oracle
+++ b/tests/stl/oracle/stl_algorithm.res.oracle
@@ -157,10 +157,8 @@ struct array<int,2> {
 };
 void initializer_list<int>::Dtor(struct initializer_list<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void initializer_list<int>::Ctor(struct initializer_list<int> const *this)
 {
@@ -203,11 +201,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -216,11 +211,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -229,81 +221,59 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__and",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ ensures \valid(\result); */
 type declval<int*&>(void);
 
@@ -323,165 +293,120 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_move_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -512,10 +437,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -546,10 +469,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void pair<int*,int*>::Dtor(struct pair<int*,int*> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(y);
     requires \valid_read(x);
@@ -2073,10 +1994,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(t); */
 void reference_wrapper<bool*,<abst>>::Ctor(struct reference_wrapper<bool*,<abst>> const *this,
@@ -2118,10 +2037,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void reference_wrapper<bool&,<abst>>::Dtor(struct reference_wrapper<bool&,<abst>> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(t); */
 void reference_wrapper<bool&,<abst>>::Ctor(struct reference_wrapper<bool&,<abst>> const *this,
@@ -2174,11 +2091,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "reference_wrapper",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -2188,10 +2102,8 @@ void __bool_binop<int,std::__less>::Ctor(struct __bool_binop<int,std::__less> co
 
 void __bool_binop<int,std::__less>::Dtor(struct __bool_binop<int,std::__less> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 _Bool operator()(struct __bool_binop<int,std::__less> const *this,
                  int const *x, int const *y);
 
@@ -2222,10 +2134,8 @@ void __bool_binop<int,std::__equal_to>::Ctor(struct __bool_binop<int,std::__equa
 
 void __bool_binop<int,std::__equal_to>::Dtor(struct __bool_binop<int,std::__equal_to> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 _Bool operator()(struct __bool_binop<int,std::__equal_to> const *this,
                  int const *x, int const *y);
 
@@ -2287,11 +2197,8 @@ void equal_to<int>::Ctor(struct equal_to<int> const *this,
 
 void equal_to<int>::Dtor(struct equal_to<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void equal_to<int>::Ctor(struct equal_to<int> const *this)
 {
@@ -2348,11 +2255,8 @@ void less<int>::Ctor(struct less<int> const *this);
 
 void less<int>::Dtor(struct less<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void less<int>::Ctor(struct less<int> const *this)
 {
@@ -2374,10 +2278,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void unary_negate<bool*,<abst>>::Dtor(struct unary_negate<bool*,<abst>> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(pred); */
 void unary_negate<bool*,<abst>>::Ctor(struct unary_negate<bool*,<abst>> const *this,
@@ -2414,10 +2316,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void unary_negate<std::reference_wrapper<bool&,<abst>>>::Dtor(struct unary_negate<std::reference_wrapper<bool&,<abst>>> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(pred); */
 void unary_negate<std::reference_wrapper<bool&,<abst>>>::Ctor(struct unary_negate<std::reference_wrapper<bool&,<abst>>> const *this,
@@ -2513,29 +2413,16 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "input_iterator_tag",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -2561,19 +2448,15 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "iterator_traits",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "iterator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -3088,10 +2971,8 @@ int *copy<int*,int*>(int *first, int *last, int *result)
   return result;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(l); */
 void array<int,5>::Ctor(struct array<int,5> const *this,
@@ -3221,10 +3102,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(l); */
 void array<int,2>::Ctor(struct array<int,2> const *this,
diff --git a/tests/stl/oracle/stl_atomic.res.oracle b/tests/stl/oracle/stl_atomic.res.oracle
index 8fdbaf40..a400d5bd 100644
--- a/tests/stl/oracle/stl_atomic.res.oracle
+++ b/tests/stl/oracle/stl_atomic.res.oracle
@@ -165,11 +165,8 @@ struct atomic_flag {
    _Bool __flag ;
 };
 typedef struct atomic_flag atomic_flag;
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -178,11 +175,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -191,39 +185,26 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -243,10 +224,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -275,10 +254,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct atomic<int*> const volatile *this);
 
@@ -432,10 +409,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<bool> const volatile *this);
 
@@ -630,10 +605,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<char> const volatile *this);
 
@@ -828,10 +801,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<signed char> const volatile *this);
 
@@ -1064,10 +1035,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<unsigned char> const volatile *this);
 
@@ -1301,10 +1270,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<short> const volatile *this);
 
@@ -1499,10 +1466,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<unsigned short> const volatile *this);
 
@@ -1738,10 +1703,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void __atomic<int>::Ctor(struct __atomic<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<int> const volatile *this);
 
@@ -1941,10 +1904,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<unsigned int> const volatile *this);
 
@@ -2178,10 +2139,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<long> const volatile *this);
 
@@ -2376,10 +2335,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<unsigned long> const volatile *this);
 
@@ -2613,10 +2570,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<long long> const volatile *this);
 
@@ -2835,10 +2790,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<unsigned long long> const volatile *this);
 
@@ -3072,10 +3025,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<char16_t> const volatile *this);
 
@@ -3308,10 +3259,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<char32_t> const volatile *this);
 
@@ -3542,10 +3491,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 _Bool is_lock_free(struct __atomic<wchar_t> const volatile *this);
 
@@ -3740,11 +3687,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<bool>::Ctor(struct atomic<bool> const *this, _Bool x)
 {
@@ -3752,11 +3696,8 @@ void atomic<bool>::Ctor(struct atomic<bool> const *this, _Bool x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<char>::Ctor(struct atomic<char> const *this, char x)
 {
@@ -3764,11 +3705,8 @@ void atomic<char>::Ctor(struct atomic<char> const *this, char x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<signed char>::Ctor(struct atomic<signed char> const *this,
                                signed char x)
@@ -3777,11 +3715,8 @@ void atomic<signed char>::Ctor(struct atomic<signed char> const *this,
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<unsigned char>::Ctor(struct atomic<unsigned char> const *this,
                                  unsigned char x)
@@ -3790,11 +3725,8 @@ void atomic<unsigned char>::Ctor(struct atomic<unsigned char> const *this,
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<short>::Ctor(struct atomic<short> const *this, short x)
 {
@@ -3802,11 +3734,8 @@ void atomic<short>::Ctor(struct atomic<short> const *this, short x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<unsigned short>::Ctor(struct atomic<unsigned short> const *this,
                                   unsigned short x)
@@ -3817,11 +3746,8 @@ void atomic<unsigned short>::Ctor(struct atomic<unsigned short> const *this,
 
 void atomic<int>::Ctor(struct atomic<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<int>::Ctor(struct atomic<int> const *this, int x)
 {
@@ -3836,11 +3762,8 @@ void atomic<int>::Ctor(struct atomic<int> const *this)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<unsigned int>::Ctor(struct atomic<unsigned int> const *this,
                                 unsigned int x)
@@ -3849,11 +3772,8 @@ void atomic<unsigned int>::Ctor(struct atomic<unsigned int> const *this,
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<long>::Ctor(struct atomic<long> const *this, long x)
 {
@@ -3861,11 +3781,8 @@ void atomic<long>::Ctor(struct atomic<long> const *this, long x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<unsigned long>::Ctor(struct atomic<unsigned long> const *this,
                                  unsigned long x)
@@ -3874,11 +3791,8 @@ void atomic<unsigned long>::Ctor(struct atomic<unsigned long> const *this,
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<long long>::Ctor(struct atomic<long long> const *this, int x)
 {
@@ -3887,11 +3801,8 @@ void atomic<long long>::Ctor(struct atomic<long long> const *this, int x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<unsigned long long>::Ctor(struct atomic<unsigned long long> const *this,
                                       unsigned long long x)
@@ -3900,11 +3811,8 @@ void atomic<unsigned long long>::Ctor(struct atomic<unsigned long long> const *t
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<char16_t>::Ctor(struct atomic<char16_t> const *this,
                             unsigned short x)
@@ -3913,11 +3821,8 @@ void atomic<char16_t>::Ctor(struct atomic<char16_t> const *this,
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<char32_t>::Ctor(struct atomic<char32_t> const *this,
                             unsigned int x)
@@ -3926,11 +3831,8 @@ void atomic<char32_t>::Ctor(struct atomic<char32_t> const *this,
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void atomic<wchar_t>::Ctor(struct atomic<wchar_t> const *this, int x)
 {
@@ -3938,10 +3840,8 @@ void atomic<wchar_t>::Ctor(struct atomic<wchar_t> const *this, int x)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 _Bool test_and_set(struct atomic_flag volatile *this,
                    memory_order __frama_c_arg_0);
diff --git a/tests/stl/oracle/stl_bool.res.oracle b/tests/stl/oracle/stl_bool.res.oracle
index 6bb2643b..7e211fab 100644
--- a/tests/stl/oracle/stl_bool.res.oracle
+++ b/tests/stl/oracle/stl_bool.res.oracle
@@ -72,11 +72,8 @@ struct bad_function_call;
 struct bad_function_call {
    struct exception _frama_c__ZN3stdE9exception ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -85,11 +82,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -98,39 +92,26 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -150,10 +131,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -1708,29 +1687,16 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "input_iterator_tag",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -1756,10 +1722,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "iterator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/stl/oracle/stl_functional.res.oracle b/tests/stl/oracle/stl_functional.res.oracle
index fd7d8e71..611ac58f 100644
--- a/tests/stl/oracle/stl_functional.res.oracle
+++ b/tests/stl/oracle/stl_functional.res.oracle
@@ -130,11 +130,8 @@ struct __fc_exn_struct __fc_exn =
    .exn_kind = 0,
    .exn_obj = {.__fc_S_ZN3stdE17bad_function_call = {._frama_c__ZN3stdE9exception = {
                                                      .pvmt = (struct _frama_c_vmt *)0}}}};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -143,11 +140,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -156,49 +150,33 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__or",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -214,106 +192,78 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -347,10 +297,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -1864,10 +1812,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
    .rtti_info = & _frama_c_rtti_name_info};
 void reference_wrapper<int*,<abst>>::Dtor(struct reference_wrapper<int*,<abst>> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(t); */
 void reference_wrapper<int*,<abst>>::Ctor(struct reference_wrapper<int*,<abst>> const *this,
@@ -1933,10 +1879,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(t); */
 void reference_wrapper<int>::Ctor(struct reference_wrapper<int> const *this,
@@ -1984,10 +1928,8 @@ void __binop<int,std::__minus>::Ctor(struct __binop<int,std::__minus> const *thi
 
 void __binop<int,std::__minus>::Dtor(struct __binop<int,std::__minus> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(y);
     requires \valid_read(x);
@@ -2031,10 +1973,8 @@ void __binop<int,std::__plus>::Ctor(struct __binop<int,std::__plus> const *this,
 
 void __binop<int,std::__plus>::Dtor(struct __binop<int,std::__plus> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(y);
     requires \valid_read(x);
@@ -2095,11 +2035,8 @@ void plus<int>::Ctor(struct plus<int> const *this,
 
 void plus<int>::Dtor(struct plus<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void plus<int>::Ctor(struct plus<int> const *this)
 {
@@ -2162,11 +2099,8 @@ void minus<int>::Ctor(struct minus<int> const *this,
 
 void minus<int>::Dtor(struct minus<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void minus<int>::Ctor(struct minus<int> const *this)
 {
@@ -2207,10 +2141,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void __bool_binop<int,std::__less>::Ctor(struct __bool_binop<int,std::__less> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 _Bool operator()(struct __bool_binop<int,std::__less> const *this,
                  int const *x, int const *y);
 
@@ -2251,11 +2183,8 @@ _Bool operator()(struct __bool_binop<int,std::__less> const *this,
 
 void less<int>::Ctor(struct less<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void less<int>::Ctor(struct less<int> const *this)
 {
@@ -2311,10 +2240,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void function<int&,<abst>>::Ctor(struct function<int&,<abst>> const *this);
 
diff --git a/tests/stl/oracle/stl_initializer_list.res.oracle b/tests/stl/oracle/stl_initializer_list.res.oracle
index c0862fdf..82e325ab 100644
--- a/tests/stl/oracle/stl_initializer_list.res.oracle
+++ b/tests/stl/oracle/stl_initializer_list.res.oracle
@@ -28,10 +28,8 @@ struct initializer_list<int> {
    int const *base ;
    size_t length ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void initializer_list<int>::Ctor(struct initializer_list<int> const *this);
 
diff --git a/tests/stl/oracle/stl_iterator.res.oracle b/tests/stl/oracle/stl_iterator.res.oracle
index 78567b1a..201b556c 100644
--- a/tests/stl/oracle/stl_iterator.res.oracle
+++ b/tests/stl/oracle/stl_iterator.res.oracle
@@ -78,11 +78,8 @@ typedef struct reverse_iterator<int*> const_reverse_iterator;
 struct array<int,2> {
    int elems[2] ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -91,11 +88,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -104,39 +98,26 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -152,20 +133,15 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -173,10 +149,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void initializer_list<int>::Dtor(struct initializer_list<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void initializer_list<int>::Ctor(struct initializer_list<int> const *this)
 {
@@ -223,10 +197,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -255,29 +227,16 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "input_iterator_tag",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -303,19 +262,15 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "iterator_traits",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "iterator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -331,10 +286,8 @@ void iterator<std::random_access_iterator_tag,int,int,int*,int&>::Ctor
 void iterator<std::random_access_iterator_tag,int,int,int*,int&>::Dtor
 (struct iterator<std::random_access_iterator_tag,int,int,int*,int&> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void iterator<std::random_access_iterator_tag,int,int,int*,int&>::Ctor
 (struct iterator<std::random_access_iterator_tag,int,int,int*,int&> const *this)
@@ -370,11 +323,8 @@ void reverse_iterator<int*>::Ctor(struct reverse_iterator<int*> const *this,
 
 void reverse_iterator<int*>::Dtor(struct reverse_iterator<int*> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void reverse_iterator<int*>::Ctor(struct reverse_iterator<int*> const *this);
 
@@ -473,10 +423,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
 _Bool operator<<int*,int*>(struct reverse_iterator<int*> const *x,
                            struct reverse_iterator<int*> const *y);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(l); */
 void array<int,4>::Ctor(struct array<int,4> const *this,
@@ -611,10 +559,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(l); */
 void array<int,2>::Ctor(struct array<int,2> const *this,
diff --git a/tests/stl/oracle/stl_memory.res.oracle b/tests/stl/oracle/stl_memory.res.oracle
index da9ca326..736a2942 100644
--- a/tests/stl/oracle/stl_memory.res.oracle
+++ b/tests/stl/oracle/stl_memory.res.oracle
@@ -129,11 +129,8 @@ void *malloc(unsigned int size);
 
 void free(void *ptr);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -142,11 +139,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -155,39 +149,26 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -203,94 +184,71 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_lvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -350,10 +308,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -1715,10 +1671,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 1,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "allocator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -1734,10 +1688,8 @@ struct default_delete<int> *operator=(struct default_delete<int> *this,
 
 void default_delete<int>::Dtor(struct default_delete<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void operator()(struct default_delete<int> const *this, int * const o)
 {
@@ -1805,10 +1757,8 @@ void default_delete<int[]>::Ctor(struct default_delete<int[]> const *this,
 struct default_delete<int[]> *operator=(struct default_delete<int[]> *this,
                                         struct default_delete<int[]> *__frama_c_arg_0);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void operator()(struct default_delete<int[]> const *this, int *ptr)
 {
@@ -1854,10 +1804,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void auto_ptr<int>::Ctor(struct auto_ptr<int> const *this, int *p)
 {
@@ -2037,10 +1985,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 7,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void unique_ptr<int,std::default_delete<int>>::Ctor(struct unique_ptr<int,std::default_delete<int>> const *this);
 
@@ -2145,10 +2091,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void unique_ptr<int[],std::default_delete<int[]>>::Ctor(struct unique_ptr<int[],std::default_delete<int[]>> const *this);
 
@@ -2301,10 +2245,8 @@ void swap<int,std::default_delete<int>>(struct unique_ptr<int,std::default_delet
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this);
 
 struct _frama_c_vmt _frama_c_vmt_header;
@@ -2331,10 +2273,8 @@ void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<void>::Ctor(struct shared_ptr<void> const *this)
 {
diff --git a/tests/stl/oracle/stl_shared_ptr_mistake10.res.oracle b/tests/stl/oracle/stl_shared_ptr_mistake10.res.oracle
index 4adbb86f..3cc2c955 100644
--- a/tests/stl/oracle/stl_shared_ptr_mistake10.res.oracle
+++ b/tests/stl/oracle/stl_shared_ptr_mistake10.res.oracle
@@ -140,11 +140,8 @@ struct __fc_exn_struct __fc_exn =
    .exn_kind = 0,
    .exn_obj = {.__fc_S_ZN3stdE12bad_weak_ptr = {._frama_c__ZN3stdE9exception = {
                                                 .pvmt = (struct _frama_c_vmt *)0}}}};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -153,11 +150,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -166,53 +160,38 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ ensures \valid(\result); */
 type declval<Aircraft*>(void);
 
@@ -226,49 +205,36 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "pre_is_base_of2",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_base_of",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -299,10 +265,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -1711,19 +1675,15 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 1,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "allocator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<Aircraft>::Ctor(struct shared_ptr<Aircraft> const *this)
 {
@@ -2040,10 +2000,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 7,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void weak_ptr<Aircraft>::Ctor(struct weak_ptr<Aircraft> const *this)
 {
@@ -2192,10 +2150,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this);
 
 struct _frama_c_vmt _frama_c_vmt_header;
@@ -2277,10 +2233,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(__frama_c_arg_0); */
 void pass(struct shared_ptr<Aircraft> *__frama_c_arg_0)
 {
@@ -2292,10 +2246,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<void>::Ctor(struct shared_ptr<void> const *this)
 {
@@ -3234,10 +3186,8 @@ int posix_memalign(void **memptr, size_t alignment, size_t size);
  */
 int mkstemp(char *templat);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 void Fly(struct Aircraft *this)
 {
diff --git a/tests/stl/oracle/stl_shared_ptr_mistake5.res.oracle b/tests/stl/oracle/stl_shared_ptr_mistake5.res.oracle
index 4402c8ae..c0857254 100644
--- a/tests/stl/oracle/stl_shared_ptr_mistake5.res.oracle
+++ b/tests/stl/oracle/stl_shared_ptr_mistake5.res.oracle
@@ -121,11 +121,8 @@ void *malloc(size_t size);
 
 void free(void *p);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -134,11 +131,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -147,53 +141,38 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ ensures \valid(\result); */
 type declval<Aircraft*>(void);
 
@@ -207,49 +186,36 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "pre_is_base_of2",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_base_of",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -280,10 +246,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -1692,19 +1656,15 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 1,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "allocator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<Aircraft>::Ctor(struct shared_ptr<Aircraft> const *this);
 
@@ -2002,10 +1962,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 7,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void weak_ptr<Aircraft>::Ctor(struct weak_ptr<Aircraft> const *this)
 {
@@ -2053,10 +2011,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this);
 
 struct _frama_c_vmt _frama_c_vmt_header;
@@ -2105,10 +2061,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(__frama_c_arg_0); */
 void pass(struct shared_ptr<Aircraft> *__frama_c_arg_0)
 {
@@ -2120,10 +2074,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<void>::Ctor(struct shared_ptr<void> const *this)
 {
@@ -3013,10 +2965,8 @@ int posix_memalign(void **memptr, size_t alignment, size_t size);
  */
 int mkstemp(char *templat);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 void Fly(struct Aircraft *this)
 {
diff --git a/tests/stl/oracle/stl_shared_ptr_mistake6.res.oracle b/tests/stl/oracle/stl_shared_ptr_mistake6.res.oracle
index 8784981a..cfb3193f 100644
--- a/tests/stl/oracle/stl_shared_ptr_mistake6.res.oracle
+++ b/tests/stl/oracle/stl_shared_ptr_mistake6.res.oracle
@@ -122,11 +122,8 @@ void *malloc(size_t size);
 
 void free(void *p);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -135,11 +132,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -148,53 +142,38 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ ensures \valid(\result); */
 type declval<Aircraft*>(void);
 
@@ -208,49 +187,36 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "pre_is_base_of2",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_base_of",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -281,10 +247,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -1693,19 +1657,15 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 1,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "allocator",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<Aircraft>::Ctor(struct shared_ptr<Aircraft> const *this);
 
@@ -2008,10 +1968,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 7,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void weak_ptr<Aircraft>::Ctor(struct weak_ptr<Aircraft> const *this)
 {
@@ -2059,10 +2017,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this);
 
 struct _frama_c_vmt _frama_c_vmt_header;
@@ -2111,10 +2067,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 2,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(__frama_c_arg_0); */
 void pass(struct shared_ptr<Aircraft> *__frama_c_arg_0)
 {
@@ -2126,10 +2080,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<void>::Ctor(struct shared_ptr<void> const *this)
 {
@@ -3019,10 +2971,8 @@ int posix_memalign(void **memptr, size_t alignment, size_t size);
  */
 int mkstemp(char *templat);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this); */
 void Fly(struct Aircraft *this)
 {
diff --git a/tests/stl/oracle/stl_system_error.res.oracle b/tests/stl/oracle/stl_system_error.res.oracle
index 5bb4c46b..14571f0d 100644
--- a/tests/stl/oracle/stl_system_error.res.oracle
+++ b/tests/stl/oracle/stl_system_error.res.oracle
@@ -184,11 +184,8 @@ struct error_condition {
    int val_ ;
    struct error_category const *cat_ ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -197,11 +194,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -210,39 +204,26 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -2198,10 +2179,8 @@ int *fgetws(int * __restrict ws, int n, FILE * __restrict stream);
  */
 int wcscasecmp(int const *ws1, int const *ws2);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(c2);
     requires \valid(c1); */
 void assign(char_type *c1, char_type const *c2);
@@ -2209,10 +2188,8 @@ void assign(char_type *c1, char_type const *c2);
 /*@ requires \valid_read(a); */
 char_type const *find(char_type const *s, size_t n, char_type const *a);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(c2);
     requires \valid(c1); */
 void assign(char_type *c1, char_type const *c2);
@@ -2255,10 +2232,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -2287,10 +2262,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_vmt _frama_c_vmt_header;
 
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
@@ -2396,10 +2369,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
   {.table = _frama_c_vmt,
    .table_size = 7,
    .rtti_info = & _frama_c_rtti_name_info};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this);
 
 struct _frama_c_vmt _frama_c_vmt_header;
@@ -2426,10 +2397,8 @@ void bad_weak_ptr::Dtor(struct bad_weak_ptr const *this)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void shared_ptr<void>::Ctor(struct shared_ptr<void> const *this)
 {
@@ -3110,10 +3079,8 @@ struct error_category const *generic_category(void);
 /*@ ensures \valid_read(\result); */
 struct error_category const *system_category(void);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void error_code::Ctor(struct error_code const *this);
 
@@ -3243,10 +3210,8 @@ struct _frama_c_vmt _frama_c_vmt_header =
     requires \valid_read(lhs); */
 _Bool operator<(struct error_code const *lhs, struct error_code const *rhs);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void error_condition::Ctor(struct error_condition const *this);
 
@@ -3281,11 +3246,8 @@ _Bool conversion(bool)(struct error_condition const *this);
 _Bool operator<(struct error_condition const *lhs,
                 struct error_condition const *rhs);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(rhs);
     requires \valid_read(lhs); */
 _Bool operator==(struct error_code const *lhs, struct error_code const *rhs);
diff --git a/tests/stl/oracle/stl_typeinfo.res.oracle b/tests/stl/oracle/stl_typeinfo.res.oracle
index 83430930..bad0b5e3 100644
--- a/tests/stl/oracle/stl_typeinfo.res.oracle
+++ b/tests/stl/oracle/stl_typeinfo.res.oracle
@@ -1689,10 +1689,8 @@ void __si_class_type_info::Dtor(struct __si_class_type_info const *this)
   return;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void __vmi_class_type_info::Dtor(struct __vmi_class_type_info const *this);
 
 struct _frama_c_vmt _frama_c_vmt_header;
diff --git a/tests/stl/oracle/stl_utility.res.oracle b/tests/stl/oracle/stl_utility.res.oracle
index 2b79ae2c..490681e8 100644
--- a/tests/stl/oracle/stl_utility.res.oracle
+++ b/tests/stl/oracle/stl_utility.res.oracle
@@ -81,11 +81,8 @@ typedef type elt_type;
 struct S {
    int x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,0> const *this);
 
@@ -94,11 +91,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-_Bool const value;
 /*@ requires \valid_read(this); */
 value_type value_type)(struct integral_constant<bool,1> const *this);
 
@@ -107,126 +101,94 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__boolean",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "__and",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "_is_void",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "add_rvalue_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ ensures \valid(\result); */
 type declval<int&&>(void);
 
@@ -261,559 +223,400 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_default_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_default_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_copy_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_move_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_move_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_move_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_move_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_move_constructible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_nothrow_assignable",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "is_convertible",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "remove_reference",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "enable_if",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "conditional",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
@@ -903,10 +706,8 @@ void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this);
 
 void piecewise_construct_t::Dtor(struct piecewise_construct_t const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void piecewise_construct_t::Ctor(struct piecewise_construct_t const *this)
 {
@@ -935,10 +736,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(y);
     requires \valid(x); */
@@ -964,10 +763,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void pair<int,bool>::Dtor(struct pair<int,bool> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid_read(y);
     requires \valid_read(x);
@@ -1010,10 +807,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void pair<int,double>::Ctor(struct pair<int,double> const *this)
 {
@@ -1069,28 +864,22 @@ struct pair<int,bool> make_pair<int&,bool>(int *x, _Bool *y)
   return __fc_tmp_1;
 }
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "tuple_element",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "tuple_element",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(p);
     ensures \valid(\result); */
 elt_type *get(type *p)
@@ -1113,10 +902,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(p);
     ensures \valid(\result); */
 elt_type *get(type *p)
@@ -1165,10 +952,8 @@ type const *get<0,int,double>(struct pair<int,double> const *p);
     ensures \valid_read(\result); */
 type const *get<1,int,double>(struct pair<int,double> const *p);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void S::Ctor(struct S const *this, int y)
 {
diff --git a/tests/template/oracle/17_4_11.res.oracle b/tests/template/oracle/17_4_11.res.oracle
index 64c3e1cc..239ab3ea 100644
--- a/tests/template/oracle/17_4_11.res.oracle
+++ b/tests/template/oracle/17_4_11.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Foo<int> {
    int *x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo<int>::Ctor(struct Foo<int> const *this, int *_x)
 {
diff --git a/tests/template/oracle/class_in_template.res.oracle b/tests/template/oracle/class_in_template.res.oracle
index 69518e0d..42710674 100644
--- a/tests/template/oracle/class_in_template.res.oracle
+++ b/tests/template/oracle/class_in_template.res.oracle
@@ -42,10 +42,8 @@ struct basic_ostream<char> {
 };
 void ios_base::Ctor(struct ios_base const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 int const bad_bit = 1;
 /*@ requires \valid_read(this); */
 void ios_base::Ctor(struct ios_base const *this)
@@ -58,11 +56,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void basic_ios<char>::Ctor(struct basic_ios<char> const *this)
 {
@@ -106,13 +101,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void basic_ostream<char>::Ctor(struct basic_ostream<char> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_rtti_name_info_content _frama_c_base_classes[1];
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this);
     requires \valid(__os); */
 void sentry::Ctor(struct sentry const *this, struct basic_ostream<char> *__os);
diff --git a/tests/template/oracle/fwd_decl.res.oracle b/tests/template/oracle/fwd_decl.res.oracle
index 44efca72..ae2c1c4e 100644
--- a/tests/template/oracle/fwd_decl.res.oracle
+++ b/tests/template/oracle/fwd_decl.res.oracle
@@ -33,10 +33,8 @@ struct A *id<A>(struct A *x)
 
 void A::Ctor(struct A const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void A::Ctor(struct A const *this)
 {
diff --git a/tests/template/oracle/fwd_decl2.res.oracle b/tests/template/oracle/fwd_decl2.res.oracle
index 9ddc4578..af365663 100644
--- a/tests/template/oracle/fwd_decl2.res.oracle
+++ b/tests/template/oracle/fwd_decl2.res.oracle
@@ -30,10 +30,8 @@ struct bar {
    int y ;
    int z ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void foo<bar>::Ctor(struct foo<bar> const *this, struct bar *_x)
 {
@@ -57,10 +55,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void bar::Ctor(struct bar const *this)
 {
diff --git a/tests/template/oracle/global_var_instantiation_bts1552.res.oracle b/tests/template/oracle/global_var_instantiation_bts1552.res.oracle
index 7f9b1589..f89be332 100644
--- a/tests/template/oracle/global_var_instantiation_bts1552.res.oracle
+++ b/tests/template/oracle/global_var_instantiation_bts1552.res.oracle
@@ -27,10 +27,8 @@ struct Stack<5> {
 };
 void Stack<5>::Ctor(struct Stack<5> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Stack<5>::Ctor(struct Stack<5> const *this)
 {
diff --git a/tests/template/oracle/inner_class.res.oracle b/tests/template/oracle/inner_class.res.oracle
index f8041b21..12ebc412 100644
--- a/tests/template/oracle/inner_class.res.oracle
+++ b/tests/template/oracle/inner_class.res.oracle
@@ -35,10 +35,8 @@ struct A<1> {
 };
 void A<1>::Ctor(struct A<1> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 void anonymous_class_1::Ctor(struct anonymous_class_1 const *this);
 
 void anonymous_class_2::Ctor(struct anonymous_class_2 const *this);
diff --git a/tests/template/oracle/logic_fct.res.oracle b/tests/template/oracle/logic_fct.res.oracle
index 997c0309..c2fd627d 100644
--- a/tests/template/oracle/logic_fct.res.oracle
+++ b/tests/template/oracle/logic_fct.res.oracle
@@ -28,10 +28,8 @@ struct Stack<6> {
 };
 void Stack<6>::Ctor(struct Stack<6> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ logic ℤ Size(struct Stack<6> \this) = \this.sz;
  */
 /*@
diff --git a/tests/template/oracle/namespace.res.oracle b/tests/template/oracle/namespace.res.oracle
index 1f6df20d..149ca803 100644
--- a/tests/template/oracle/namespace.res.oracle
+++ b/tests/template/oracle/namespace.res.oracle
@@ -31,10 +31,8 @@ struct baz {
 };
 void bar<int>::Ctor(struct bar<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void bar<int>::Ctor(struct bar<int> const *this)
 {
@@ -48,10 +46,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void baz::Ctor(struct baz const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void baz::Ctor(struct baz const *this)
 {
diff --git a/tests/template/oracle/template_autofriend.res.oracle b/tests/template/oracle/template_autofriend.res.oracle
index f19ec8d8..97c419bc 100644
--- a/tests/template/oracle/template_autofriend.res.oracle
+++ b/tests/template/oracle/template_autofriend.res.oracle
@@ -33,10 +33,8 @@ struct b<a::e> {
 };
 void b<void>::Ctor(struct b<void> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void b<void>::Ctor(struct b<void> const *this)
 {
@@ -50,10 +48,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void b<int>::Ctor(struct b<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void b<int>::Ctor(struct b<int> const *this)
 {
@@ -67,10 +63,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void b<a::e>::Ctor(struct b<a::e> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void b<a::e>::Ctor(struct b<a::e> const *this)
 {
diff --git a/tests/template/oracle/template_impl_arg.res.oracle b/tests/template/oracle/template_impl_arg.res.oracle
index 9b0414cf..6ec78bcd 100644
--- a/tests/template/oracle/template_impl_arg.res.oracle
+++ b/tests/template/oracle/template_impl_arg.res.oracle
@@ -25,10 +25,8 @@ struct _frama_c_rtti_name_info_node {
 struct Foo<int> {
    int *x ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo<int>::Ctor(struct Foo<int> const *this, int *_x)
 {
diff --git a/tests/template/oracle/template_of_template.res.oracle b/tests/template/oracle/template_of_template.res.oracle
index 2280a71c..928eb5d6 100644
--- a/tests/template/oracle/template_of_template.res.oracle
+++ b/tests/template/oracle/template_of_template.res.oracle
@@ -30,10 +30,8 @@ struct e<a::c<a::b<char>>> {
 };
 void e<void>::Ctor(struct e<void> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void e<void>::Ctor(struct e<void> const *this)
 {
@@ -47,10 +45,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void e<a::c<a::b<char>>>::Ctor(struct e<a::c<a::b<char>>> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void e<a::c<a::b<char>>>::Ctor(struct e<a::c<a::b<char>>> const *this)
 {
diff --git a/tests/template/oracle/template_of_template2.res.oracle b/tests/template/oracle/template_of_template2.res.oracle
index 350c8779..87e90021 100644
--- a/tests/template/oracle/template_of_template2.res.oracle
+++ b/tests/template/oracle/template_of_template2.res.oracle
@@ -30,10 +30,8 @@ struct c<char> {
 };
 void c<void>::Ctor(struct c<void> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void c<void>::Ctor(struct c<void> const *this)
 {
@@ -47,10 +45,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .pvmt = (struct _frama_c_vmt *)0};
 void c<char>::Ctor(struct c<char> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void c<char>::Ctor(struct c<char> const *this)
 {
diff --git a/tests/template/oracle/template_spec_bts1551.res.oracle b/tests/template/oracle/template_spec_bts1551.res.oracle
index 97040002..cf19f74e 100644
--- a/tests/template/oracle/template_spec_bts1551.res.oracle
+++ b/tests/template/oracle/template_spec_bts1551.res.oracle
@@ -27,10 +27,8 @@ struct array<5> {
 };
 void array<5>::Ctor(struct array<5> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid(this);
     assigns \nothing; */
 void foo(struct array<5> *this);
diff --git a/tests/template/oracle/template_variadic.res.oracle b/tests/template/oracle/template_variadic.res.oracle
index 76cef059..9ead17fa 100644
--- a/tests/template/oracle/template_variadic.res.oracle
+++ b/tests/template/oracle/template_variadic.res.oracle
@@ -29,10 +29,8 @@ typedef struct Tuple<Pair<int,unsigned int>,Pair<signed char,unsigned char>> typ
 void Tuple<Pair<int,unsigned int>,Pair<signed char,unsigned char>>::Ctor
 (struct Tuple<Pair<int,unsigned int>,Pair<signed char,unsigned char>> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Tuple<Pair<int,unsigned int>,Pair<signed char,unsigned char>>::Ctor
 (struct Tuple<Pair<int,unsigned int>,Pair<signed char,unsigned char>> const *this)
@@ -50,12 +48,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-struct _frama_c_vmt _frama_c_vmt_header;
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "zip",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/template/oracle/typedef_bts1531.res.oracle b/tests/template/oracle/typedef_bts1531.res.oracle
index 6645362a..7b649c03 100644
--- a/tests/template/oracle/typedef_bts1531.res.oracle
+++ b/tests/template/oracle/typedef_bts1531.res.oracle
@@ -23,10 +23,8 @@ struct _frama_c_rtti_name_info_node {
    struct _frama_c_vmt *pvmt ;
 };
 typedef int bar;
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
   {.name = "foo",
    .base_classes = (struct _frama_c_rtti_name_info_content *)0,
diff --git a/tests/template/oracle/uninitialized_constants.res.oracle b/tests/template/oracle/uninitialized_constants.res.oracle
index ea27e230..ce08f075 100644
--- a/tests/template/oracle/uninitialized_constants.res.oracle
+++ b/tests/template/oracle/uninitialized_constants.res.oracle
@@ -22,12 +22,10 @@ struct _frama_c_rtti_name_info_node {
    int number_of_base_classes ;
    struct _frama_c_vmt *pvmt ;
 };
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
-int const __min;
-int const __max;
+extern int const __min;
+
 _Bool const _is_signed = (_Bool)1;
 int const __digits = 10;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
diff --git a/tests/template/oracle/using_typedef.res.oracle b/tests/template/oracle/using_typedef.res.oracle
index 4f4082e4..48acf224 100644
--- a/tests/template/oracle/using_typedef.res.oracle
+++ b/tests/template/oracle/using_typedef.res.oracle
@@ -27,10 +27,8 @@ struct Foo<int> {
 };
 void Foo<int>::Dtor(struct Foo<int> const *this);
 
-struct _frama_c_vmt _frama_c_vmt_header;
 struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info;
 
-struct _frama_c_vmt_content _frama_c_vmt[1];
 /*@ requires \valid_read(this); */
 void Foo<int>::Ctor(struct Foo<int> const *this, int _x)
 {
diff --git a/tests/val_analysis/oracle/annot.res.oracle b/tests/val_analysis/oracle/annot.res.oracle
index 0acf7c16..93b167c5 100644
--- a/tests/val_analysis/oracle/annot.res.oracle
+++ b/tests/val_analysis/oracle/annot.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] tests/val_analysis/annot.cc:9: 
   cannot evaluate ACSL term, unsupported ACSL construct: logic function foo
 [eva:alarm] tests/val_analysis/annot.cc:9: Warning: 
diff --git a/tests/val_analysis/oracle/cast_op.res.oracle b/tests/val_analysis/oracle/cast_op.res.oracle
index f33df3a1..3ff20ab0 100644
--- a/tests/val_analysis/oracle/cast_op.res.oracle
+++ b/tests/val_analysis/oracle/cast_op.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function A::Ctor:
diff --git a/tests/val_analysis/oracle/comment.res.oracle b/tests/val_analysis/oracle/comment.res.oracle
index c29fd96e..660696e5 100644
--- a/tests/val_analysis/oracle/comment.res.oracle
+++ b/tests/val_analysis/oracle/comment.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "Point" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva:alarm] tests/val_analysis/comment.cc:24: Warning: 
   function move_y: precondition dy ≢ 0 got status invalid.
 [eva] done for function main
diff --git a/tests/val_analysis/oracle/copy_arg.res.oracle b/tests/val_analysis/oracle/copy_arg.res.oracle
index 93d6e18c..220a43bc 100644
--- a/tests/val_analysis/oracle/copy_arg.res.oracle
+++ b/tests/val_analysis/oracle/copy_arg.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "Foo" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function Foo::Ctor:
diff --git a/tests/val_analysis/oracle/empty_class.res.oracle b/tests/val_analysis/oracle/empty_class.res.oracle
index dedfca61..64c7cf49 100644
--- a/tests/val_analysis/oracle/empty_class.res.oracle
+++ b/tests/val_analysis/oracle/empty_class.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "foo" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function cat:
diff --git a/tests/val_analysis/oracle/logic_def.res.oracle b/tests/val_analysis/oracle/logic_def.res.oracle
index 736d44e4..5b03cc2d 100644
--- a/tests/val_analysis/oracle/logic_def.res.oracle
+++ b/tests/val_analysis/oracle/logic_def.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "X" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function X::Ctor:
diff --git a/tests/val_analysis/oracle/namespace.res.oracle b/tests/val_analysis/oracle/namespace.res.oracle
index 8a2b6b8d..82ae6258 100644
--- a/tests/val_analysis/oracle/namespace.res.oracle
+++ b/tests/val_analysis/oracle/namespace.res.oracle
@@ -4,16 +4,12 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "B" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function B::Ctor:
diff --git a/tests/val_analysis/oracle/nested.res.oracle b/tests/val_analysis/oracle/nested.res.oracle
index 572ab063..c2139392 100644
--- a/tests/val_analysis/oracle/nested.res.oracle
+++ b/tests/val_analysis/oracle/nested.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function anonymous_class_1::Ctor:
diff --git a/tests/val_analysis/oracle/out_def.res.oracle b/tests/val_analysis/oracle/out_def.res.oracle
index 5d7e3191..b00ae34c 100644
--- a/tests/val_analysis/oracle/out_def.res.oracle
+++ b/tests/val_analysis/oracle/out_def.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function foo:
diff --git a/tests/val_analysis/oracle/overload.res.oracle b/tests/val_analysis/oracle/overload.res.oracle
index b9bb2176..e594e52d 100644
--- a/tests/val_analysis/oracle/overload.res.oracle
+++ b/tests/val_analysis/oracle/overload.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function foo:
diff --git a/tests/val_analysis/oracle/prune.res.oracle b/tests/val_analysis/oracle/prune.res.oracle
index b0b891e5..2e91114c 100644
--- a/tests/val_analysis/oracle/prune.res.oracle
+++ b/tests/val_analysis/oracle/prune.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function A::Ctor:
diff --git a/tests/val_analysis/oracle/ptr.res.oracle b/tests/val_analysis/oracle/ptr.res.oracle
index 492bbcf9..d9ebebbd 100644
--- a/tests/val_analysis/oracle/ptr.res.oracle
+++ b/tests/val_analysis/oracle/ptr.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
   x ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
diff --git a/tests/val_analysis/oracle/qualified.res.oracle b/tests/val_analysis/oracle/qualified.res.oracle
index 06d03bcb..6bb3ff0f 100644
--- a/tests/val_analysis/oracle/qualified.res.oracle
+++ b/tests/val_analysis/oracle/qualified.res.oracle
@@ -4,16 +4,12 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "foo" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function A::Dtor:
diff --git a/tests/val_analysis/oracle/result.res.oracle b/tests/val_analysis/oracle/result.res.oracle
index cd0b2ef0..3b23f6ed 100644
--- a/tests/val_analysis/oracle/result.res.oracle
+++ b/tests/val_analysis/oracle/result.res.oracle
@@ -4,11 +4,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva:alarm] tests/val_analysis/result.cc:7: Warning: 
   function f, behavior default: postcondition got status invalid.
 [eva] done for function main
diff --git a/tests/val_analysis/oracle/union.res.oracle b/tests/val_analysis/oracle/union.res.oracle
index 2f559a0f..870e07c9 100644
--- a/tests/val_analysis/oracle/union.res.oracle
+++ b/tests/val_analysis/oracle/union.res.oracle
@@ -7,11 +7,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function f:
diff --git a/tests/val_analysis/oracle/union_struct.res.oracle b/tests/val_analysis/oracle/union_struct.res.oracle
index 67977e37..293b44bc 100644
--- a/tests/val_analysis/oracle/union_struct.res.oracle
+++ b/tests/val_analysis/oracle/union_struct.res.oracle
@@ -7,11 +7,9 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
 [eva] done for function main
 [eva] ====== VALUES COMPUTED ======
 [eva:final-states] Values at end of function f:
diff --git a/tests/val_analysis/oracle/virtual_base_sema.res.oracle b/tests/val_analysis/oracle/virtual_base_sema.res.oracle
index b335da41..5db76808 100644
--- a/tests/val_analysis/oracle/virtual_base_sema.res.oracle
+++ b/tests/val_analysis/oracle/virtual_base_sema.res.oracle
@@ -4,15 +4,12 @@ Now output intermediate result
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
-  _frama_c_vmt_header ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "A" }}
                          {.base_classes; .number_of_base_classes; .pvmt} ∈
                          {0}
-  _frama_c_vmt[0] ∈ {0}
   _frama_c_vmt_header.table ∈ {{ &_frama_c_vmt[0] }}
                      .table_size ∈ {1}
                      .rtti_info ∈ {{ &_frama_c_rtti_name_info }}
-  _frama_c_vmt_header_for_shift_0 ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "B" }}
                          .base_classes ∈ {{ &_frama_c_base_classes[0] }}
                          .number_of_base_classes ∈ {1}
@@ -33,7 +30,6 @@ Now output intermediate result
   _frama_c_vmt_header.table ∈ {{ &_frama_c_vmt[0] }}
                      .table_size ∈ {1}
                      .rtti_info ∈ {{ &_frama_c_rtti_name_info }}
-  _frama_c_vmt_header_for_shift_0 ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "C" }}
                          .base_classes ∈ {{ &_frama_c_base_classes[0] }}
                          .number_of_base_classes ∈ {1}
@@ -58,7 +54,6 @@ Now output intermediate result
                                  .table_size ∈ {1}
                                  .rtti_info ∈
                                  {{ &_frama_c_rtti_name_info }}
-  _frama_c_vmt_header_for_shift_0 ∈ {0}
   _frama_c_rtti_name_info.name ∈ {{ "D" }}
                          .base_classes ∈ {{ &_frama_c_base_classes[0] }}
                          .number_of_base_classes ∈ {3}
-- 
GitLab