[12/17] reader: Fix building of variadic parameter type

Message ID 20240716145541.473065-13-dodji@redhat.com
State New
Headers
Series Support self comparison of vmlinux & modules using BTF/CTF |

Commit Message

Dodji Seketeli July 16, 2024, 2:55 p.m. UTC
  From: Dodji Seketeli <dodji@redhat.com>

variadic parameter type is not added to its proper scope, leading to
issues down the road.  Fixed thus.

	* src/abg-ir-priv.h (type_topo_comp::operator()): Do not compare
	types using their location anymore.  It's unnecessary (now that
	types are sorted before canonicalization) and it wreaks havoc with
	the new properly constructed variadic parameter types.
	* src/abg-reader.cc (build_ir_node_for_variadic_parameter_type):
	Define new function.  Add variadic parameter type to the global
	scope of the current translation unit.
	(build_function_parameter, build_type_decl): Use the new
	build_ir_node_for_variadic_parameter_type.
	* tests/data/test-read-write/test17.xml: Adjust.
	* tests/data/test-read-write/test19.xml: Likewise.
	* tests/data/test-read-write/test20.xml: Likewise.
	* tests/data/test-read-write/test21.xml: Likewise.
	* tests/data/test-read-write/test22.xml: Likewise.
	* tests/data/test-read-write/test23.xml: Likewise.
	* tests/data/test-read-write/test25.xml: Likewise.
	* tests/data/test-read-write/test26.xml: Likewise.
	* tests/data/test-read-write/test28-without-std-fns-ref.xml:
	Likewise.
	* tests/data/test-read-write/test28-without-std-vars-ref.xml:
	Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 src/abg-ir-priv.h                             |   9 -
 src/abg-reader.cc                             |  28 +-
 tests/data/test-read-write/test17.xml         |  44 +-
 tests/data/test-read-write/test19.xml         |  12 +-
 tests/data/test-read-write/test20.xml         |  68 +-
 tests/data/test-read-write/test21.xml         |  14 +-
 tests/data/test-read-write/test22.xml         |   1 +
 tests/data/test-read-write/test23.xml         |   1 +
 tests/data/test-read-write/test25.xml         |  46 +-
 tests/data/test-read-write/test26.xml         |  16 +-
 .../test28-without-std-fns-ref.xml            | 937 +++++++++---------
 .../test28-without-std-vars-ref.xml           | 865 ++++++++--------
 12 files changed, 1030 insertions(+), 1011 deletions(-)
  

Patch

diff --git a/src/abg-ir-priv.h b/src/abg-ir-priv.h
index a9002561..bf8cf36f 100644
--- a/src/abg-ir-priv.h
+++ b/src/abg-ir-priv.h
@@ -1435,15 +1435,6 @@  struct type_topo_comp
     if (f == s || !f || !s)
       return false;
 
-    // If both decls come from an abixml file, keep the order they
-    // have from that abixml file.
-    if (is_decl(f) && is_decl(s)
-	&& ((!f->get_corpus() && !s->get_corpus())
-	    || (f->get_corpus()->get_origin() == corpus::NATIVE_XML_ORIGIN
-		&& (s->get_corpus()->get_origin()
-		    == corpus::NATIVE_XML_ORIGIN))))
-      return compare_using_locations(is_decl(f), is_decl(s));
-
     bool f_is_ptr_ref_or_qual = is_ptr_ref_or_qual_type(f);
     bool s_is_ptr_ref_or_qual = is_ptr_ref_or_qual_type(s);
 
diff --git a/src/abg-reader.cc b/src/abg-reader.cc
index 9ae4cac2..2d06302e 100644
--- a/src/abg-reader.cc
+++ b/src/abg-reader.cc
@@ -111,6 +111,9 @@  build_ir_node_for_void_type(reader& rdr);
 static decl_base_sptr
 build_ir_node_for_void_pointer_type(reader& rdr);
 
+static decl_base_sptr
+build_ir_node_for_variadic_parameter_type(reader& rdr);
+
 static void
 resolve_symbol_aliases(string_elf_symbols_map_sptr&	fn_syms,
 		       string_elf_symbols_map_sptr&	var_syms,
@@ -3545,7 +3548,7 @@  build_function_parameter(reader& rdr, const xmlNodePtr node)
 
   type_base_sptr type;
   if (is_variadic)
-    type = rdr.get_environment().get_variadic_parameter_type();
+    type = is_type(build_ir_node_for_variadic_parameter_type(rdr));
   else
     {
       ABG_ASSERT(!type_id.empty());
@@ -3997,6 +4000,27 @@  build_ir_node_for_void_pointer_type(reader& rdr)
   return type_declaration;
 }
 
+/// Build the IR node for a variadic parameter type.
+///
+/// @param rdr the ABIXML reader to use.
+///
+/// @return the variadic parameter type.
+static decl_base_sptr
+build_ir_node_for_variadic_parameter_type(reader& rdr)
+{
+  const environment& env = rdr.get_environment();
+
+  type_base_sptr t = env.get_variadic_parameter_type();
+  if (!get_type_scope(t))
+    {
+      add_decl_to_scope(is_decl(t),
+			rdr.get_translation_unit()->get_global_scope());
+      rdr.schedule_type_for_canonicalization(t);
+    }
+  decl_base_sptr type_declaration = get_type_declaration(t);
+  return type_declaration;
+}
+
 /// Build a type_decl from a "type-decl" XML Node.
 ///
 /// @param rdr the context of the parsing.
@@ -4067,7 +4091,7 @@  build_type_decl(reader&		rdr,
   const environment& env = rdr.get_environment();
   type_decl_sptr decl;
   if (name == env.get_variadic_parameter_type_name())
-    decl = is_type_decl(env.get_variadic_parameter_type());
+    decl = is_type_decl(build_ir_node_for_variadic_parameter_type(rdr));
   else if (name == "void")
     decl = is_type_decl(build_ir_node_for_void_type(rdr));
   else
diff --git a/tests/data/test-read-write/test17.xml b/tests/data/test-read-write/test17.xml
index 739f7cfd..9442f0a3 100644
--- a/tests/data/test-read-write/test17.xml
+++ b/tests/data/test-read-write/test17.xml
@@ -1,15 +1,8 @@ 
 <abi-instr path='data/test-read-write/test17.xml'>
   <type-decl name='char' size-in-bits='8' alignment-in-bits='8' id='type-id-1'/>
-  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-2'/>
-  <type-decl name='unsigned int' size-in-bits='32' alignment-in-bits='32' id='type-id-3'/>
-  <enum-decl name='E' filepath='../../prtests/test.cc' line='1' column='6' id='type-id-4'>
-    <underlying-type type-id='type-id-3'/>
-    <enumerator name='e0' value='0'/>
-    <enumerator name='e1' value='1'/>
-  </enum-decl>
-  <class-decl name='S' size-in-bits='96' alignment-in-bits='32' visibility='default' filepath='../../prtests/test.cc' line='3' column='8' id='type-id-5'>
+  <class-decl name='S' size-in-bits='96' alignment-in-bits='32' visibility='default' filepath='../../prtests/test.cc' line='3' column='8' id='type-id-2'>
     <data-member access='public'>
-      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test.cc' line='5' column='7'/>
+      <var-decl name='m0' type-id='type-id-3' visibility='default' filepath='../../prtests/test.cc' line='5' column='7'/>
     </data-member>
     <data-member access='public'>
       <var-decl name='m1' type-id='type-id-1' visibility='default' filepath='../../prtests/test.cc' line='6' column='8'/>
@@ -19,32 +12,39 @@ 
     </data-member>
     <member-function access='public'>
       <function-decl name='S' mangled-name='_ZN1SC1Ev *INTERNAL* ' filepath='../../prtests/test.cc' line='9' column='3' declared-inline='yes' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-6'/>
-        <return type-id='type-id-7'/>
+        <parameter type-id='type-id-5'/>
+        <return type-id='type-id-6'/>
       </function-decl>
     </member-function>
     <member-function access='public'>
       <function-decl name='__base_ctor ' mangled-name='_ZN1SC2Ev' filepath='../../prtests/test.cc' line='9' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-6'/>
-        <return type-id='type-id-7'/>
+        <parameter type-id='type-id-5'/>
+        <return type-id='type-id-6'/>
       </function-decl>
     </member-function>
     <member-function access='public'>
       <function-decl name='__comp_ctor ' mangled-name='_ZN1SC1Ev' filepath='../../prtests/test.cc' line='9' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-6'/>
-        <return type-id='type-id-7'/>
+        <parameter type-id='type-id-5'/>
+        <return type-id='type-id-6'/>
       </function-decl>
     </member-function>
     <member-function access='public'>
       <function-decl name='S' mangled-name='_ZN1SC1ERKS_ *INTERNAL* ' filepath='../../prtests/test.cc' line='15' column='3' declared-inline='yes' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-6'/>
-        <parameter type-id='type-id-8'/>
-        <return type-id='type-id-7'/>
+        <parameter type-id='type-id-5'/>
+        <parameter type-id='type-id-7'/>
+        <return type-id='type-id-6'/>
       </function-decl>
     </member-function>
   </class-decl>
-  <reference-type-def kind='lvalue' type-id='type-id-5' size-in-bits='64' alignment-in-bits='64' id='type-id-8'/>
-  <pointer-type-def type-id='type-id-5' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/>
-  <var-decl name='var' type-id='type-id-5' mangled-name='var' visibility='default' binding='global' filepath='../../prtests/test.cc' line='30' column='3'/>
-  <type-decl name='void' id='type-id-7'/>
+  <enum-decl name='E' filepath='../../prtests/test.cc' line='1' column='6' id='type-id-4'>
+    <underlying-type type-id='type-id-8'/>
+    <enumerator name='e0' value='0'/>
+    <enumerator name='e1' value='1'/>
+  </enum-decl>
+  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-3'/>
+  <type-decl name='unsigned int' size-in-bits='32' alignment-in-bits='32' id='type-id-8'/>
+  <reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
+  <pointer-type-def type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-5'/>
+  <var-decl name='var' type-id='type-id-2' mangled-name='var' visibility='default' binding='global' filepath='../../prtests/test.cc' line='30' column='3'/>
+  <type-decl name='void' id='type-id-6'/>
 </abi-instr>
diff --git a/tests/data/test-read-write/test19.xml b/tests/data/test-read-write/test19.xml
index 619076db..255db9f8 100644
--- a/tests/data/test-read-write/test19.xml
+++ b/tests/data/test-read-write/test19.xml
@@ -1,22 +1,22 @@ 
 <abi-instr path='data/test-read-write/test19.xml'>
-  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-1'/>
-  <class-decl name='B0' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='1' column='7' id='type-id-2'>
+  <class-decl name='B0' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='1' column='7' id='type-id-1'>
     <data-member access='private' layout-offset-in-bits='0'>
-      <var-decl name='m0' type-id='type-id-1' visibility='default' filepath='../../prtests/test9.cc' line='3' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='3' column='7'/>
     </data-member>
   </class-decl>
   <class-decl name='B1' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='20' column='7' id='type-id-3'>
     <data-member access='private' layout-offset-in-bits='0'>
-      <var-decl name='m0' type-id='type-id-1' visibility='default' filepath='../../prtests/test9.cc' line='22' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='22' column='7'/>
     </data-member>
   </class-decl>
   <class-decl name='S' size-in-bits='96' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='39' column='7' id='type-id-4'>
-    <base-class access='public' type-id='type-id-2'/>
+    <base-class access='public' type-id='type-id-1'/>
     <base-class access='public' type-id='type-id-3'/>
     <data-member access='private' layout-offset-in-bits='64'>
-      <var-decl name='m0' type-id='type-id-1' visibility='default' filepath='../../prtests/test9.cc' line='41' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='41' column='7'/>
     </data-member>
   </class-decl>
+  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-2'/>
   <qualified-type-def type-id='type-id-4' const='yes' filepath='../../prtests/test9.cc' line='39' column='7' id='type-id-5'/>
   <reference-type-def kind='lvalue' type-id='type-id-5' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/>
   <function-decl name='foo' mangled-name='_Z3fooRK1S' filepath='../../prtests/test9.cc' line='59' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
diff --git a/tests/data/test-read-write/test20.xml b/tests/data/test-read-write/test20.xml
index 8439bf90..ebdaf005 100644
--- a/tests/data/test-read-write/test20.xml
+++ b/tests/data/test-read-write/test20.xml
@@ -1,84 +1,84 @@ 
 <abi-instr path='data/test-read-write/test20.xml'>
-  <class-decl name='__class_type_info_pseudo' size-in-bits='128' alignment-in-bits='64' visibility='default' id='type-id-1'/>
-  <class-decl name='__vmi_class_type_info_pseudo3' size-in-bits='576' alignment-in-bits='64' visibility='default' id='type-id-2'/>
-  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-3'/>
-  <class-decl name='B0' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='1' column='7' id='type-id-4'>
+  <class-decl name='B0' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='1' column='7' id='type-id-1'>
     <data-member access='private' layout-offset-in-bits='0'>
-      <var-decl name='m0' type-id='type-id-3' visibility='default' filepath='../../prtests/test9.cc' line='3' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='3' column='7'/>
     </data-member>
     <member-function access='public'>
       <function-decl name='__base_ctor ' mangled-name='_ZN2B0C2Ev' filepath='../../prtests/test9.cc' line='7' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-5'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-3'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
     <member-function access='public'>
       <function-decl name='__comp_ctor ' mangled-name='_ZN2B0C1Ev' filepath='../../prtests/test9.cc' line='7' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-5'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-3'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
   </class-decl>
-  <class-decl name='B1' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='20' column='7' id='type-id-7'>
+  <class-decl name='B1' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='20' column='7' id='type-id-5'>
     <data-member access='private' layout-offset-in-bits='0'>
-      <var-decl name='m0' type-id='type-id-3' visibility='default' filepath='../../prtests/test9.cc' line='22' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='22' column='7'/>
     </data-member>
     <member-function access='public'>
       <function-decl name='__base_ctor ' mangled-name='_ZN2B1C2Ev' filepath='../../prtests/test9.cc' line='26' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-8'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-6'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
     <member-function access='public'>
       <function-decl name='__comp_ctor ' mangled-name='_ZN2B1C1Ev' filepath='../../prtests/test9.cc' line='26' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-8'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-6'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
   </class-decl>
-  <class-decl name='B2' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='39' column='7' id='type-id-9'>
+  <class-decl name='B2' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='../../prtests/test9.cc' line='39' column='7' id='type-id-7'>
     <data-member access='private' layout-offset-in-bits='0'>
-      <var-decl name='m0' type-id='type-id-3' visibility='default' filepath='../../prtests/test9.cc' line='41' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='41' column='7'/>
     </data-member>
     <member-function access='public'>
       <function-decl name='__base_ctor ' mangled-name='_ZN2B2C2Ev' filepath='../../prtests/test9.cc' line='45' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-10'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-8'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
     <member-function access='public'>
       <function-decl name='__comp_ctor ' mangled-name='_ZN2B2C1Ev' filepath='../../prtests/test9.cc' line='45' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-10'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-8'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
   </class-decl>
-  <class-decl name='S' size-in-bits='192' alignment-in-bits='64' visibility='default' filepath='../../prtests/test9.cc' line='58' column='7' id='type-id-11'>
-    <base-class access='public' layout-offset-in-bits='64' type-id='type-id-4'/>
-    <base-class access='public' layout-offset-in-bits='96' type-id='type-id-7'/>
-    <base-class access='private' layout-offset-in-bits='160' is-virtual='yes' type-id='type-id-9'/>
+  <class-decl name='S' size-in-bits='192' alignment-in-bits='64' visibility='default' filepath='../../prtests/test9.cc' line='58' column='7' id='type-id-9'>
+    <base-class access='public' layout-offset-in-bits='64' type-id='type-id-1'/>
+    <base-class access='public' layout-offset-in-bits='96' type-id='type-id-5'/>
+    <base-class access='private' layout-offset-in-bits='160' is-virtual='yes' type-id='type-id-7'/>
     <data-member access='private' layout-offset-in-bits='128'>
-      <var-decl name='m0' type-id='type-id-3' visibility='default' filepath='../../prtests/test9.cc' line='60' column='7'/>
+      <var-decl name='m0' type-id='type-id-2' visibility='default' filepath='../../prtests/test9.cc' line='60' column='7'/>
     </data-member>
     <member-function access='public'>
       <function-decl name='__comp_ctor ' mangled-name='_ZN1SC1Ev' filepath='../../prtests/test9.cc' line='64' column='3' declared-inline='yes' visibility='default' binding='weak' size-in-bits='8' alignment-in-bits='8'>
-        <parameter type-id='type-id-12'/>
-        <return type-id='type-id-6'/>
+        <parameter type-id='type-id-10'/>
+        <return type-id='type-id-4'/>
       </function-decl>
     </member-function>
   </class-decl>
-  <pointer-type-def type-id='type-id-4' size-in-bits='64' alignment-in-bits='64' id='type-id-5'/>
+  <class-decl name='__class_type_info_pseudo' size-in-bits='128' alignment-in-bits='64' visibility='default' id='type-id-11'/>
+  <class-decl name='__vmi_class_type_info_pseudo3' size-in-bits='576' alignment-in-bits='64' visibility='default' id='type-id-12'/>
+  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-2'/>
+  <pointer-type-def type-id='type-id-1' size-in-bits='64' alignment-in-bits='64' id='type-id-3'/>
+  <pointer-type-def type-id='type-id-5' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/>
   <pointer-type-def type-id='type-id-7' size-in-bits='64' alignment-in-bits='64' id='type-id-8'/>
   <pointer-type-def type-id='type-id-9' size-in-bits='64' alignment-in-bits='64' id='type-id-10'/>
-  <pointer-type-def type-id='type-id-11' size-in-bits='64' alignment-in-bits='64' id='type-id-12'/>
-  <qualified-type-def type-id='type-id-1' const='yes' id='type-id-13'/>
-  <qualified-type-def type-id='type-id-2' const='yes' id='type-id-14'/>
+  <qualified-type-def type-id='type-id-11' const='yes' id='type-id-13'/>
+  <qualified-type-def type-id='type-id-12' const='yes' id='type-id-14'/>
   <function-decl name='foo' mangled-name='_Z3foov' filepath='../../prtests/test9.cc' line='78' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
-    <return type-id='type-id-6'/>
+    <return type-id='type-id-4'/>
   </function-decl>
   <var-decl name='_ZTI2B0' type-id='type-id-13' mangled-name='_ZTI2B0' visibility='default' binding='weak' filepath='../../prtests/test9.cc' line='81' column='1'/>
   <var-decl name='_ZTI2B2' type-id='type-id-13' mangled-name='_ZTI2B2' visibility='default' binding='weak' filepath='../../prtests/test9.cc' line='81' column='1'/>
   <var-decl name='_ZTI2B1' type-id='type-id-13' mangled-name='_ZTI2B1' visibility='default' binding='weak' filepath='../../prtests/test9.cc' line='81' column='1'/>
   <var-decl name='_ZTI1S' type-id='type-id-14' mangled-name='_ZTI1S' visibility='default' binding='weak' filepath='../../prtests/test9.cc' line='58' column='7'/>
-  <type-decl name='void' id='type-id-6'/>
+  <type-decl name='void' id='type-id-4'/>
 </abi-instr>
diff --git a/tests/data/test-read-write/test21.xml b/tests/data/test-read-write/test21.xml
index 5dada1d2..c9170a5f 100644
--- a/tests/data/test-read-write/test21.xml
+++ b/tests/data/test-read-write/test21.xml
@@ -1,11 +1,10 @@ 
 <abi-instr path='data/test-read-write/test21.xml'>
-  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-1'/>
-  <class-decl name='S' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='simple-class-0.C' line='5' column='8' id='type-id-2'>
+  <class-decl name='S' size-in-bits='32' alignment-in-bits='32' visibility='default' filepath='simple-class-0.C' line='5' column='8' id='type-id-1'>
     <member-type access='public'>
-      <typedef-decl name='S' type-id='type-id-2' filepath='simple-class-0.C' line='6' column='1' id='type-id-3'/>
+      <typedef-decl name='S' type-id='type-id-1' filepath='simple-class-0.C' line='6' column='1' id='type-id-2'/>
     </member-type>
     <data-member access='public' layout-offset-in-bits='0'>
-      <var-decl name='m' type-id='type-id-1' visibility='default' filepath='simple-class-0.C' line='7' column='7'/>
+      <var-decl name='m' type-id='type-id-3' visibility='default' filepath='simple-class-0.C' line='7' column='7'/>
     </data-member>
     <member-function access='public' constructor='yes'>
       <function-decl name='__base_ctor ' mangled-name='_ZN1SC2Ev' filepath='simple-class-0.C' line='13' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
@@ -34,9 +33,10 @@ 
       </function-decl>
     </member-function>
   </class-decl>
-  <reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
-  <pointer-type-def type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-4'/>
-  <qualified-type-def type-id='type-id-2' const='yes' filepath='simple-class-0.C' line='5' column='8' id='type-id-8'/>
+  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-3'/>
+  <reference-type-def kind='lvalue' type-id='type-id-1' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
+  <pointer-type-def type-id='type-id-1' size-in-bits='64' alignment-in-bits='64' id='type-id-4'/>
+  <qualified-type-def type-id='type-id-1' const='yes' filepath='simple-class-0.C' line='5' column='8' id='type-id-8'/>
   <reference-type-def kind='lvalue' type-id='type-id-8' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/>
   <function-decl name='foo' mangled-name='_Z3fooR1S' filepath='simple-class-0.C' line='24' column='1' visibility='default' binding='global' size-in-bits='8' alignment-in-bits='8'>
     <parameter type-id='type-id-7'/>
diff --git a/tests/data/test-read-write/test22.xml b/tests/data/test-read-write/test22.xml
index e40c4666..bd707d0e 100644
--- a/tests/data/test-read-write/test22.xml
+++ b/tests/data/test-read-write/test22.xml
@@ -16,5 +16,6 @@ 
     <return type-id='type-id-2'/>
   </function-decl>
   <var-decl name='global' type-id='type-id-2' visibility='default' filepath='/home/dodji/test-bidw/test-v0.cc' line='2' column='1'/>
+  <type-decl name='variadic parameter type' id='type-id-5'/>
   <type-decl name='void' id='type-id-4'/>
 </abi-instr>
diff --git a/tests/data/test-read-write/test23.xml b/tests/data/test-read-write/test23.xml
index 5c44d203..e36dda7e 100644
--- a/tests/data/test-read-write/test23.xml
+++ b/tests/data/test-read-write/test23.xml
@@ -16,5 +16,6 @@ 
     <return type-id='type-id-2'/>
   </function-decl>
   <var-decl name='global' type-id='type-id-2' visibility='default' filepath='/home/dodji/test-bidw/test-v0.cc' line='2' column='1'/>
+  <type-decl name='variadic parameter type' id='type-id-5'/>
   <type-decl name='void' id='type-id-4'/>
 </abi-instr>
diff --git a/tests/data/test-read-write/test25.xml b/tests/data/test-read-write/test25.xml
index f8b0abbb..4d37bec5 100644
--- a/tests/data/test-read-write/test25.xml
+++ b/tests/data/test-read-write/test25.xml
@@ -6,45 +6,45 @@ 
   <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='unknown' alignment-in-bits='8' id='type-id-5'>
     <subrange length='unknown' lower-bound='0' upper-bound='0' id='type-id-6'/>
   </array-type-def>
-  <class-decl name='S' size-in-bits='2240' is-struct='yes' visibility='default' id='type-id-7'>
+  <type-decl name='double' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
+  <array-type-def dimensions='2' type-id='type-id-7' size-in-bits='960' alignment-in-bits='64' id='type-id-8'>
+    <subrange length='5' lower-bound='0' upper-bound='4' id='type-id-9'/>
+    <subrange length='3' lower-bound='0' upper-bound='2' id='type-id-10'/>
+  </array-type-def>
+  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-11'/>
+  <array-type-def dimensions='1' type-id='type-id-12' size-in-bits='640' alignment-in-bits='64' id='type-id-13'>
+    <subrange length='10' lower-bound='0' upper-bound='9' id='type-id-14'/>
+  </array-type-def>
+  <array-type-def dimensions='1' type-id='type-id-15' size-in-bits='256' alignment-in-bits='64' id='type-id-16'>
+    <subrange length='4' lower-bound='0' upper-bound='3' id='type-id-17'/>
+  </array-type-def>
+  <array-type-def dimensions='1' type-id='type-id-11' size-in-bits='160' alignment-in-bits='32' id='type-id-18'>
+    <subrange length='5' lower-bound='0' upper-bound='4' id='type-id-9'/>
+  </array-type-def>
+  <class-decl name='S' size-in-bits='2240' is-struct='yes' visibility='default' id='type-id-19'>
     <data-member access='public' layout-offset-in-bits='0'>
-      <var-decl name='a' type-id='type-id-8' visibility='default'/>
+      <var-decl name='a' type-id='type-id-18' visibility='default'/>
     </data-member>
     <data-member access='public' layout-offset-in-bits='192'>
       <var-decl name='b' type-id='type-id-3' visibility='default'/>
     </data-member>
     <data-member access='public' layout-offset-in-bits='640'>
-      <var-decl name='c' type-id='type-id-9' visibility='default'/>
+      <var-decl name='c' type-id='type-id-8' visibility='default'/>
     </data-member>
     <data-member access='public' layout-offset-in-bits='1600'>
-      <var-decl name='d' type-id='type-id-10' visibility='default'/>
+      <var-decl name='d' type-id='type-id-13' visibility='default'/>
     </data-member>
     <data-member access='public' layout-offset-in-bits='2240'>
       <var-decl name='f' type-id='type-id-5' visibility='default'/>
     </data-member>
   </class-decl>
-  <type-decl name='double' size-in-bits='64' alignment-in-bits='64' id='type-id-11'/>
-  <array-type-def dimensions='2' type-id='type-id-11' size-in-bits='960' alignment-in-bits='64' id='type-id-9'>
-    <subrange length='5' lower-bound='0' upper-bound='4' id='type-id-12'/>
-    <subrange length='3' lower-bound='0' upper-bound='2' id='type-id-13'/>
-  </array-type-def>
-  <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-14'/>
-  <array-type-def dimensions='1' type-id='type-id-15' size-in-bits='256' alignment-in-bits='64' id='type-id-16'>
-    <subrange length='4' lower-bound='0' upper-bound='3' id='type-id-17'/>
-  </array-type-def>
-  <array-type-def dimensions='1' type-id='type-id-18' size-in-bits='640' alignment-in-bits='64' id='type-id-10'>
-    <subrange length='10' lower-bound='0' upper-bound='9' id='type-id-19'/>
-  </array-type-def>
-  <array-type-def dimensions='1' type-id='type-id-14' size-in-bits='160' alignment-in-bits='32' id='type-id-8'>
-    <subrange length='5' lower-bound='0' upper-bound='4' id='type-id-12'/>
-  </array-type-def>
-  <reference-type-def kind='lvalue' type-id='type-id-7' size-in-bits='64' alignment-in-bits='64' id='type-id-20'/>
+  <reference-type-def kind='lvalue' type-id='type-id-19' size-in-bits='64' alignment-in-bits='64' id='type-id-20'/>
   <qualified-type-def type-id='type-id-20' const='yes' id='type-id-21'/>
   <pointer-type-def type-id='type-id-1' size-in-bits='64' alignment-in-bits='64' id='type-id-2'/>
-  <pointer-type-def type-id='type-id-14' size-in-bits='64' alignment-in-bits='64' id='type-id-15'/>
-  <pointer-type-def type-id='type-id-16' size-in-bits='64' alignment-in-bits='64' id='type-id-18'/>
+  <pointer-type-def type-id='type-id-11' size-in-bits='64' alignment-in-bits='64' id='type-id-15'/>
+  <pointer-type-def type-id='type-id-16' size-in-bits='64' alignment-in-bits='64' id='type-id-12'/>
   <function-decl name='foo' size-in-bits='64'>
     <parameter type-id='type-id-21'/>
-    <return type-id='type-id-14'/>
+    <return type-id='type-id-11'/>
   </function-decl>
 </abi-instr>
diff --git a/tests/data/test-read-write/test26.xml b/tests/data/test-read-write/test26.xml
index 975c1c68..f715c48c 100644
--- a/tests/data/test-read-write/test26.xml
+++ b/tests/data/test-read-write/test26.xml
@@ -6,24 +6,24 @@ 
   </elf-function-symbols>
   <abi-instr address-size='64' path='test-v0.c'>
     <type-decl name='int' size-in-bits='32' alignment-in-bits='32' id='type-id-1'/>
-    <class-decl name='public_type' size-in-bits='64' is-struct='yes' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='2' column='1' id='type-id-2'>
+    <class-decl name='another_public_type' size-in-bits='32' is-struct='yes' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='7' column='1' id='type-id-2'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='priv_' type-id='type-id-3' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='4' column='1'/>
+        <var-decl name='i' type-id='type-id-1' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='9' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='private_data' size-in-bits='32' is-struct='yes' visibility='default' filepath='/home/dodji/tests/test-v0.c' line='3' column='1' id='type-id-4'>
+    <class-decl name='private_data' size-in-bits='32' is-struct='yes' visibility='default' filepath='/home/dodji/tests/test-v0.c' line='3' column='1' id='type-id-3'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='private_data0' type-id='type-id-1' visibility='default' filepath='/home/dodji/tests/test-v0.c' line='5' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='another_public_type' size-in-bits='32' is-struct='yes' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='7' column='1' id='type-id-5'>
+    <class-decl name='public_type' size-in-bits='64' is-struct='yes' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='2' column='1' id='type-id-4'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='i' type-id='type-id-1' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='9' column='1'/>
+        <var-decl name='priv_' type-id='type-id-5' visibility='default' filepath='/home/dodji/tests/test-interfaces-v0.h' line='4' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-5' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/>
-    <pointer-type-def type-id='type-id-4' size-in-bits='64' alignment-in-bits='64' id='type-id-3'/>
-    <pointer-type-def type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' alignment-in-bits='64' id='type-id-6'/>
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' alignment-in-bits='64' id='type-id-5'/>
+    <pointer-type-def type-id='type-id-4' size-in-bits='64' alignment-in-bits='64' id='type-id-7'/>
     <function-decl name='foo' mangled-name='foo' filepath='/home/dodji/tests/test-v0.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' alignment-in-bits='64' elf-symbol-id='foo'>
       <parameter type-id='type-id-7' name='p' filepath='/home/dodji/tests/test-v0.c' line='9' column='1'/>
       <parameter type-id='type-id-6' name='t' filepath='/home/dodji/tests/test-v0.c' line='10' column='1'/>
diff --git a/tests/data/test-read-write/test28-without-std-fns-ref.xml b/tests/data/test-read-write/test28-without-std-fns-ref.xml
index cbcba4c1..51bd5fff 100644
--- a/tests/data/test-read-write/test28-without-std-fns-ref.xml
+++ b/tests/data/test-read-write/test28-without-std-fns-ref.xml
@@ -12,147 +12,45 @@ 
     <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
   <abi-instr address-size='64' path='test24-drop-fns.cc' language='LANG_C_plus_plus'>
-    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-1'/>
+    <type-decl name='bool' size-in-bits='8' id='type-id-1'/>
     <type-decl name='char' size-in-bits='8' id='type-id-2'/>
-    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-3'/>
-    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-4'/>
-    <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-5'/>
-    <reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' id='type-id-6'/>
-    <reference-type-def kind='lvalue' type-id='type-id-4' size-in-bits='64' id='type-id-7'/>
-    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-9'/>
-    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-10'/>
-    <reference-type-def kind='lvalue' type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
-    <type-decl name='int' size-in-bits='32' id='type-id-12'/>
-    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-13'/>
-    <qualified-type-def type-id='type-id-12' const='yes' id='type-id-14'/>
-    <type-decl name='bool' size-in-bits='8' id='type-id-15'/>
-    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-16'/>
-    <qualified-type-def type-id='type-id-1' const='yes' id='type-id-17'/>
-    <type-decl name='short int' size-in-bits='16' id='type-id-18'/>
-    <qualified-type-def type-id='type-id-18' const='yes' id='type-id-19'/>
-    <type-decl name='long int' size-in-bits='64' id='type-id-20'/>
-    <qualified-type-def type-id='type-id-20' const='yes' id='type-id-21'/>
-    <typedef-decl name='_Atomic_word' type-id='type-id-12' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/atomic_word.h' line='32' column='1' id='type-id-22'/>
-    <qualified-type-def type-id='type-id-23' const='yes' id='type-id-24'/>
-    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-26'/>
-    <qualified-type-def type-id='type-id-25' const='yes' id='type-id-27'/>
-    <reference-type-def kind='lvalue' type-id='type-id-27' size-in-bits='64' id='type-id-28'/>
-    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-30'/>
-    <reference-type-def kind='lvalue' type-id='type-id-31' size-in-bits='64' id='type-id-32'/>
-    <qualified-type-def type-id='type-id-31' const='yes' id='type-id-33'/>
-    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
-    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-35'/>
-    <qualified-type-def type-id='type-id-36' const='yes' id='type-id-37'/>
-    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
-    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-39'/>
-    <reference-type-def kind='lvalue' type-id='type-id-37' size-in-bits='64' id='type-id-40'/>
-    <reference-type-def kind='lvalue' type-id='type-id-36' size-in-bits='64' id='type-id-41'/>
-    <type-decl name='unsigned int' size-in-bits='32' id='type-id-42'/>
-    <typedef-decl name='wint_t' type-id='type-id-42' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='357' column='1' id='type-id-43'/>
-    <type-decl name='wchar_t' size-in-bits='32' id='type-id-44'/>
-    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-45'/>
-    <qualified-type-def type-id='type-id-44' const='yes' id='type-id-46'/>
-    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-47'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='83' column='1' id='type-id-48'>
+    <type-decl name='double' size-in-bits='64' id='type-id-3'/>
+    <type-decl name='float' size-in-bits='32' id='type-id-4'/>
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <type-decl name='long double' size-in-bits='128' id='type-id-6'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-7'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-8'/>
+    <type-decl name='short int' size-in-bits='16' id='type-id-9'/>
+    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='53' column='1' id='type-id-10'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__count' type-id='type-id-12' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='__mbstate_t' type-id='type-id-48' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-49'/>
-    <typedef-decl name='mbstate_t' type-id='type-id-49' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-50'/>
-    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-51'/>
-    <qualified-type-def type-id='type-id-50' const='yes' id='type-id-52'/>
-    <pointer-type-def type-id='type-id-52' size-in-bits='64' id='type-id-53'/>
-    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-54'/>
-    <class-decl name='typedef __va_list_tag __va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-55'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='gp_offset' type-id='type-id-42' visibility='default'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='fp_offset' type-id='type-id-42' visibility='default'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='overflow_arg_area' type-id='type-id-56' visibility='default'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='reg_save_area' type-id='type-id-56' visibility='default'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-55' size-in-bits='64' id='type-id-57'/>
-    <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/time.h' line='133' column='1' id='type-id-58'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tm_sec' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='tm_min' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='136' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tm_hour' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='137' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='tm_mday' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='138' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='tm_mon' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='139' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='tm_year' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='140' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='tm_wday' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='141' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='tm_yday' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='142' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='tm_isdst' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='143' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tm_gmtoff' type-id='type-id-20' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='tm_zone' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
-      </data-member>
-    </class-decl>
-    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-59'/>
-    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-60'/>
-    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-61'/>
-    <type-decl name='double' size-in-bits='64' id='type-id-62'/>
-    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-63'/>
-    <type-decl name='float' size-in-bits='32' id='type-id-64'/>
-    <type-decl name='long double' size-in-bits='128' id='type-id-65'/>
-    <type-decl name='long long int' size-in-bits='64' id='type-id-66'/>
-    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-67'/>
-    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='53' column='1' id='type-id-68'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='decimal_point' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='57' column='1'/>
+        <var-decl name='decimal_point' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='thousands_sep' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='58' column='1'/>
+        <var-decl name='thousands_sep' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='grouping' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='64' column='1'/>
+        <var-decl name='grouping' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='64' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='int_curr_symbol' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
+        <var-decl name='int_curr_symbol' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='currency_symbol' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
+        <var-decl name='currency_symbol' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='mon_decimal_point' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
+        <var-decl name='mon_decimal_point' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='mon_thousands_sep' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
+        <var-decl name='mon_thousands_sep' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='mon_grouping' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
+        <var-decl name='mon_grouping' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='positive_sign' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
+        <var-decl name='positive_sign' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='negative_sign' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
+        <var-decl name='negative_sign' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
         <var-decl name='int_frac_digits' type-id='type-id-2' visibility='default' filepath='/usr/include/locale.h' line='77' column='1'/>
@@ -197,629 +95,732 @@ 
         <var-decl name='int_n_sign_posn' type-id='type-id-2' visibility='default' filepath='/usr/include/locale.h' line='111' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-69'/>
-    <typedef-decl name='wctype_t' type-id='type-id-1' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-70'/>
-    <typedef-decl name='__int32_t' type-id='type-id-12' filepath='/usr/include/bits/types.h' line='40' column='1' id='type-id-71'/>
-    <qualified-type-def type-id='type-id-71' const='yes' id='type-id-72'/>
+    <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/time.h' line='133' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tm_sec' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='tm_min' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tm_hour' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='tm_mday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='138' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='tm_mon' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='tm_year' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='tm_wday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='tm_yday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='tm_isdst' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='tm_gmtoff' type-id='type-id-7' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='tm_zone' type-id='type-id-13' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='typedef __va_list_tag __va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='gp_offset' type-id='type-id-15' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='fp_offset' type-id='type-id-15' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='overflow_arg_area' type-id='type-id-16' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='reg_save_area' type-id='type-id-16' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='83' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__count' type-id='type-id-5' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_Atomic_word' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/atomic_word.h' line='32' column='1' id='type-id-18'/>
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='40' column='1' id='type-id-19'/>
+    <typedef-decl name='__mbstate_t' type-id='type-id-17' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-20'/>
+    <typedef-decl name='mbstate_t' type-id='type-id-20' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-21'/>
+    <typedef-decl name='size_t' type-id='type-id-22' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='216' column='1' id='type-id-23'/>
+    <typedef-decl name='wctrans_t' type-id='type-id-24' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-25'/>
+    <typedef-decl name='wctype_t' type-id='type-id-22' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-26'/>
+    <typedef-decl name='wint_t' type-id='type-id-15' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='357' column='1' id='type-id-27'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-15'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-28'/>
+    <type-decl name='wchar_t' size-in-bits='32' id='type-id-29'/>
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-31'/>
+    <reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' id='type-id-32'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-11'/>
+    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-33'/>
+    <reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-35'/>
+    <qualified-type-def type-id='type-id-19' const='yes' id='type-id-36'/>
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-24'/>
+    <qualified-type-def type-id='type-id-1' const='yes' id='type-id-37'/>
+    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-38'/>
+    <reference-type-def kind='lvalue' type-id='type-id-38' size-in-bits='64' id='type-id-39'/>
+    <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-13'/>
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-40'/>
+    <qualified-type-def type-id='type-id-5' const='yes' id='type-id-41'/>
+    <qualified-type-def type-id='type-id-7' const='yes' id='type-id-42'/>
+    <qualified-type-def type-id='type-id-21' const='yes' id='type-id-43'/>
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
+    <qualified-type-def type-id='type-id-9' const='yes' id='type-id-45'/>
+    <qualified-type-def type-id='type-id-46' const='yes' id='type-id-47'/>
+    <reference-type-def kind='lvalue' type-id='type-id-47' size-in-bits='64' id='type-id-48'/>
+    <qualified-type-def type-id='type-id-49' const='yes' id='type-id-50'/>
+    <reference-type-def kind='lvalue' type-id='type-id-50' size-in-bits='64' id='type-id-51'/>
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-52'/>
+    <qualified-type-def type-id='type-id-53' const='yes' id='type-id-54'/>
+    <pointer-type-def type-id='type-id-54' size-in-bits='64' id='type-id-55'/>
+    <qualified-type-def type-id='type-id-56' const='yes' id='type-id-57'/>
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-59'/>
+    <reference-type-def kind='lvalue' type-id='type-id-59' size-in-bits='64' id='type-id-60'/>
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-61'/>
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-63'/>
+    <reference-type-def kind='lvalue' type-id='type-id-63' size-in-bits='64' id='type-id-64'/>
+    <qualified-type-def type-id='type-id-65' const='yes' id='type-id-66'/>
+    <reference-type-def kind='lvalue' type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
+    <qualified-type-def type-id='type-id-67' id='type-id-68'/>
+    <qualified-type-def type-id='type-id-12' const='yes' id='type-id-69'/>
+    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-70'/>
+    <qualified-type-def type-id='type-id-22' const='yes' id='type-id-71'/>
+    <qualified-type-def type-id='type-id-29' const='yes' id='type-id-72'/>
     <pointer-type-def type-id='type-id-72' size-in-bits='64' id='type-id-73'/>
-    <typedef-decl name='wctrans_t' type-id='type-id-73' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-74'/>
-    <reference-type-def kind='lvalue' type-id='type-id-75' size-in-bits='64' id='type-id-76'/>
-    <qualified-type-def type-id='type-id-75' const='yes' id='type-id-77'/>
-    <reference-type-def kind='lvalue' type-id='type-id-77' size-in-bits='64' id='type-id-78'/>
-    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-79'/>
-    <pointer-type-def type-id='type-id-75' size-in-bits='64' id='type-id-80'/>
-    <qualified-type-def type-id='type-id-81' const='yes' id='type-id-82'/>
-    <reference-type-def kind='lvalue' type-id='type-id-82' size-in-bits='64' id='type-id-83'/>
-    <qualified-type-def type-id='type-id-84' const='yes' id='type-id-85'/>
-    <reference-type-def kind='lvalue' type-id='type-id-85' size-in-bits='64' id='type-id-86'/>
-    <qualified-type-def type-id='type-id-86' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-74'/>
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-75'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-76'/>
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-77'/>
+    <reference-type-def kind='lvalue' type-id='type-id-49' size-in-bits='64' id='type-id-78'/>
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-79'/>
+    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-81'/>
+    <reference-type-def kind='lvalue' type-id='type-id-53' size-in-bits='64' id='type-id-82'/>
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-83'/>
+    <reference-type-def kind='lvalue' type-id='type-id-58' size-in-bits='64' id='type-id-84'/>
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-85'/>
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-86'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-88'/>
     <namespace-decl name='std'>
-      <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-36'>
+      <class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-46'>
+        <base-class access='public' layout-offset-in-bits='0' type-id='type-id-30'/>
+      </class-decl>
+      <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-49'>
         <member-type access='private'>
-          <class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-29'>
-            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-25'/>
+          <class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-80'>
+            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-46'/>
             <data-member access='public' layout-offset-in-bits='0'>
-              <var-decl name='_M_p' type-id='type-id-3' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2675' column='1'/>
+              <var-decl name='_M_p' type-id='type-id-11' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2675' column='1'/>
             </data-member>
           </class-decl>
         </member-type>
-        <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-88' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-23'/>
-        </member-type>
-        <member-type access='public'>
-          <typedef-decl name='allocator_type' type-id='type-id-25' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-89'/>
-        </member-type>
-        <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-91' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-90'/>
-        </member-type>
-        <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-93' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-92'/>
+        <member-type access='private'>
+          <class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-53'>
+            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-89'/>
+            <data-member access='public' static='yes'>
+              <var-decl name='_S_max_size' type-id='type-id-57' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='494' column='1'/>
+            </data-member>
+            <data-member access='public' static='yes'>
+              <var-decl name='_S_terminal' type-id='type-id-38' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='499' column='1'/>
+            </data-member>
+          </class-decl>
         </member-type>
         <member-type access='private'>
-          <class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-94'>
+          <class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-89'>
             <data-member access='public' layout-offset-in-bits='0'>
-              <var-decl name='_M_length' type-id='type-id-23' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2548' column='1'/>
+              <var-decl name='_M_length' type-id='type-id-56' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2548' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='64'>
-              <var-decl name='_M_capacity' type-id='type-id-23' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2549' column='1'/>
+              <var-decl name='_M_capacity' type-id='type-id-56' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2549' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='128'>
-              <var-decl name='_M_refcount' type-id='type-id-22' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2550' column='1'/>
+              <var-decl name='_M_refcount' type-id='type-id-18' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2550' column='1'/>
             </data-member>
           </class-decl>
         </member-type>
-        <member-type access='private'>
-          <class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-31'>
-            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-94'/>
-            <data-member access='public' static='yes'>
-              <var-decl name='_S_max_size' type-id='type-id-24' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='494' column='1'/>
-            </data-member>
-            <data-member access='public' static='yes'>
-              <var-decl name='_S_terminal' type-id='type-id-4' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='499' column='1'/>
-            </data-member>
-          </class-decl>
+        <member-type access='public'>
+          <typedef-decl name='allocator_type' type-id='type-id-46' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-90'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='iterator' type-id='type-id-96' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-95'/>
+          <typedef-decl name='const_reference' type-id='type-id-92' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-91'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_iterator' type-id='type-id-98' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-97'/>
+          <typedef-decl name='reference' type-id='type-id-94' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-93'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reverse_iterator' type-id='type-id-100' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-99'/>
+          <typedef-decl name='size_type' type-id='type-id-95' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-56'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reverse_iterator' type-id='type-id-102' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-101'/>
+          <typedef-decl name='const_iterator' type-id='type-id-97' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-96'/>
         </member-type>
-        <data-member access='public' static='yes'>
-          <var-decl name='npos' type-id='type-id-24' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2683' column='1'/>
-        </data-member>
-        <data-member access='private' layout-offset-in-bits='0'>
-          <var-decl name='_M_dataplus' type-id='type-id-29' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2687' column='1'/>
-        </data-member>
-      </class-decl>
-      <class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-25'>
-        <base-class access='public' layout-offset-in-bits='0' type-id='type-id-8'/>
         <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-103' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='95' column='1' id='type-id-88'/>
+          <typedef-decl name='const_reverse_iterator' type-id='type-id-99' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-98'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-6' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='99' column='1' id='type-id-91'/>
+          <typedef-decl name='iterator' type-id='type-id-101' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-100'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-7' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='100' column='1' id='type-id-93'/>
+          <typedef-decl name='reverse_iterator' type-id='type-id-103' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-102'/>
         </member-type>
+        <data-member access='public' static='yes'>
+          <var-decl name='npos' type-id='type-id-57' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2683' column='1'/>
+        </data-member>
+        <data-member access='private' layout-offset-in-bits='0'>
+          <var-decl name='_M_dataplus' type-id='type-id-80' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2687' column='1'/>
+        </data-member>
       </class-decl>
-      <typedef-decl name='size_t' type-id='type-id-1' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/c++config.h' line='1969' column='1' id='type-id-103'/>
       <class-decl name='char_traits&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='233' column='1' id='type-id-104'>
         <member-type access='public'>
-          <typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-75'/>
+          <typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-58'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='int_type' type-id='type-id-12' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-81'/>
+          <typedef-decl name='int_type' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-62'/>
         </member-type>
       </class-decl>
-      <typedef-decl name='string' type-id='type-id-36' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-84'/>
+      <typedef-decl name='string' type-id='type-id-49' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-65'/>
       <class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-105'/>
       <typedef-decl name='ostream' type-id='type-id-105' filepath='/usr/include/c++/5.3.1/iosfwd' line='141' column='1' id='type-id-106'/>
       <var-decl name='cout' type-id='type-id-106' mangled-name='_ZSt4cout' visibility='default' filepath='/usr/include/c++/5.3.1/iostream' line='61' column='1'/>
-      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-100'/>
-      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-102'/>
+      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-99'/>
+      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-103'/>
     </namespace-decl>
     <namespace-decl name='__gnu_cxx'>
-      <class-decl name='new_allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='58' column='1' id='type-id-8'>
+      <class-decl name='new_allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='58' column='1' id='type-id-30'>
+        <member-type access='public'>
+          <typedef-decl name='const_pointer' type-id='type-id-13' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-107'/>
+        </member-type>
         <member-type access='public'>
-          <typedef-decl name='pointer' type-id='type-id-3' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-107'/>
+          <typedef-decl name='const_reference' type-id='type-id-39' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='66' column='1' id='type-id-92'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_pointer' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-108'/>
+          <typedef-decl name='pointer' type-id='type-id-11' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-108'/>
+        </member-type>
+        <member-type access='public'>
+          <typedef-decl name='reference' type-id='type-id-32' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='65' column='1' id='type-id-94'/>
+        </member-type>
+        <member-type access='public'>
+          <typedef-decl name='size_type' type-id='type-id-23' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='61' column='1' id='type-id-95'/>
         </member-type>
         <member-function access='public'>
           <function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcEC4Ev' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcEC4ERKS1_' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-11'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-34'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public' destructor='yes'>
           <function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcED4Ev' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-12' is-artificial='yes'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-5' is-artificial='yes'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='address' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE7addressERc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-13' is-artificial='yes'/>
-            <parameter type-id='type-id-91'/>
-            <return type-id='type-id-107'/>
+            <parameter type-id='type-id-35' is-artificial='yes'/>
+            <parameter type-id='type-id-94'/>
+            <return type-id='type-id-108'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='address' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-13' is-artificial='yes'/>
-            <parameter type-id='type-id-93'/>
-            <return type-id='type-id-108'/>
+            <parameter type-id='type-id-35' is-artificial='yes'/>
+            <parameter type-id='type-id-92'/>
+            <return type-id='type-id-107'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='allocate' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-88'/>
-            <parameter type-id='type-id-56'/>
-            <return type-id='type-id-107'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-95'/>
+            <parameter type-id='type-id-16'/>
+            <return type-id='type-id-108'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='deallocate' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcm' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='109' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-107'/>
-            <parameter type-id='type-id-88'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-108'/>
+            <parameter type-id='type-id-95'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='max_size' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEv' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='113' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-13' is-artificial='yes'/>
-            <return type-id='type-id-88'/>
+            <parameter type-id='type-id-35' is-artificial='yes'/>
+            <return type-id='type-id-95'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='construct' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-107'/>
-            <parameter type-id='type-id-7'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-108'/>
+            <parameter type-id='type-id-39'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='destroy' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-107'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-108'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-110'>
+      <class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-110'>
         <data-member access='public' static='yes'>
-          <var-decl name='__min' type-id='type-id-14' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
+          <var-decl name='__min' type-id='type-id-38' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__max' type-id='type-id-14' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
+          <var-decl name='__max' type-id='type-id-38' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__is_signed' type-id='type-id-16' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
+          <var-decl name='__is_signed' type-id='type-id-37' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__digits' type-id='type-id-14' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
+          <var-decl name='__digits' type-id='type-id-41' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-111'>
+      <class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-111'>
         <data-member access='public' static='yes'>
-          <var-decl name='__min' type-id='type-id-17' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
+          <var-decl name='__min' type-id='type-id-41' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__max' type-id='type-id-17' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
+          <var-decl name='__max' type-id='type-id-41' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__is_signed' type-id='type-id-16' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
+          <var-decl name='__is_signed' type-id='type-id-37' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__digits' type-id='type-id-14' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
+          <var-decl name='__digits' type-id='type-id-41' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-112'>
+      <class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-112'>
         <data-member access='public' static='yes'>
-          <var-decl name='__min' type-id='type-id-4' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
+          <var-decl name='__min' type-id='type-id-42' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__max' type-id='type-id-4' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
+          <var-decl name='__max' type-id='type-id-42' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__is_signed' type-id='type-id-16' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
+          <var-decl name='__is_signed' type-id='type-id-37' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__digits' type-id='type-id-14' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
+          <var-decl name='__digits' type-id='type-id-41' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-113'>
+      <class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-113'>
         <data-member access='public' static='yes'>
-          <var-decl name='__min' type-id='type-id-19' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
+          <var-decl name='__min' type-id='type-id-71' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__max' type-id='type-id-19' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
+          <var-decl name='__max' type-id='type-id-71' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__is_signed' type-id='type-id-16' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
+          <var-decl name='__is_signed' type-id='type-id-37' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__digits' type-id='type-id-14' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
+          <var-decl name='__digits' type-id='type-id-41' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-114'>
+      <class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-114'>
         <data-member access='public' static='yes'>
-          <var-decl name='__min' type-id='type-id-21' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
+          <var-decl name='__min' type-id='type-id-45' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__max' type-id='type-id-21' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
+          <var-decl name='__max' type-id='type-id-45' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__is_signed' type-id='type-id-16' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
+          <var-decl name='__is_signed' type-id='type-id-37' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__digits' type-id='type-id-14' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
+          <var-decl name='__digits' type-id='type-id-41' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-96'/>
-      <class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-98'/>
+      <class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-101'/>
+      <class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-97'/>
     </namespace-decl>
     <function-decl name='btowc' filepath='/usr/include/wchar.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-43'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <class-decl name='_IO_FILE' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-115'/>
     <typedef-decl name='__FILE' type-id='type-id-115' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-116'/>
     <pointer-type-def type-id='type-id-116' size-in-bits='64' id='type-id-117'/>
     <function-decl name='fgetwc' filepath='/usr/include/wchar.h' line='745' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-117'/>
+      <parameter type-id='type-id-73'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='getwc' filepath='/usr/include/wchar.h' line='746' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='getwchar' filepath='/usr/include/wchar.h' line='752' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='mbrlen' filepath='/usr/include/wchar.h' line='376' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-5'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-13'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='mbrtowc' filepath='/usr/include/wchar.h' line='365' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-5'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-13'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='mbsinit' filepath='/usr/include/wchar.h' line='361' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-44'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='mbsrtowcs' filepath='/usr/include/wchar.h' line='408' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-54'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-40'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='putwc' filepath='/usr/include/wchar.h' line='760' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-44'/>
+      <parameter type-id='type-id-29'/>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='putwchar' filepath='/usr/include/wchar.h' line='766' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-43'/>
+      <parameter type-id='type-id-29'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='swprintf' filepath='/usr/include/wchar.h' line='604' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='swscanf' filepath='/usr/include/wchar.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='ungetwc' filepath='/usr/include/wchar.h' line='789' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
+      <parameter type-id='type-id-27'/>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='vfwprintf' filepath='/usr/include/wchar.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <type-decl name='void' id='type-id-109'/>
-    <pointer-type-def type-id='type-id-109' id='type-id-56'/>
-    <function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-12'/>
-      <parameter type-id='type-id-117'/>
-      <return type-id='type-id-45'/>
-    </function-decl>
-    <function-decl name='fputwc' filepath='/usr/include/wchar.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
-    </function-decl>
-    <function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-117'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <function-decl name='fwide' filepath='/usr/include/wchar.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vfwscanf' filepath='/usr/include/wchar.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vswprintf' filepath='/usr/include/wchar.h' line='625' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vswscanf' filepath='/usr/include/wchar.h' line='701' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vwprintf' filepath='/usr/include/wchar.h' line='620' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vwscanf' filepath='/usr/include/wchar.h' line='697' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcrtomb' filepath='/usr/include/wchar.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcscat' filepath='/usr/include/wchar.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcscmp' filepath='/usr/include/wchar.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcscoll' filepath='/usr/include/wchar.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcscpy' filepath='/usr/include/wchar.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcscspn' filepath='/usr/include/wchar.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcsftime' filepath='/usr/include/wchar.h' line='855' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-60'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-70'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcslen' filepath='/usr/include/wchar.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcsncat' filepath='/usr/include/wchar.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcsncmp' filepath='/usr/include/wchar.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcsncpy' filepath='/usr/include/wchar.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcsrtombs' filepath='/usr/include/wchar.h' line='414' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-61'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-74'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcsspn' filepath='/usr/include/wchar.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-23'/>
+    </function-decl>
+    <type-decl name='void' id='type-id-109'/>
+    <pointer-type-def type-id='type-id-109' id='type-id-16'/>
+    <function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-117'/>
+      <return type-id='type-id-87'/>
+    </function-decl>
+    <function-decl name='fputwc' filepath='/usr/include/wchar.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-117'/>
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-117'/>
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <function-decl name='fwide' filepath='/usr/include/wchar.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-117'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-117'/>
+      <parameter type-id='type-id-73'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-5'/>
     </function-decl>
+    <type-decl name='variadic parameter type' id='type-id-118'/>
     <function-decl name='wcstod' filepath='/usr/include/wchar.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-62'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-3'/>
     </function-decl>
     <function-decl name='wcstof' filepath='/usr/include/wchar.h' line='457' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-64'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='wcstok' filepath='/usr/include/wchar.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcstol' filepath='/usr/include/wchar.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='wcstoul' filepath='/usr/include/wchar.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-1'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='wcsxfrm' filepath='/usr/include/wchar.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wctob' filepath='/usr/include/wchar.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-27'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wmemcmp' filepath='/usr/include/wchar.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wmemcpy' filepath='/usr/include/wchar.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wmemmove' filepath='/usr/include/wchar.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wmemset' filepath='/usr/include/wchar.h' line='338' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wprintf' filepath='/usr/include/wchar.h' line='601' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wscanf' filepath='/usr/include/wchar.h' line='642' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcschr' mangled-name='wcschr' filepath='/usr/include/wchar.h' line='224' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-29'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcspbrk' mangled-name='wcspbrk' filepath='/usr/include/wchar.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcsrchr' mangled-name='wcsrchr' filepath='/usr/include/wchar.h' line='234' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-29'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcsstr' mangled-name='wcsstr' filepath='/usr/include/wchar.h' line='273' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wmemchr' mangled-name='wmemchr' filepath='/usr/include/wchar.h' line='316' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcstold' filepath='/usr/include/wchar.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-65'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='wcstoll' filepath='/usr/include/wchar.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-66'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wcstoull' filepath='/usr/include/wchar.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-67'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-28'/>
     </function-decl>
     <function-decl name='setlocale' filepath='/usr/include/locale.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-12'/>
       <parameter type-id='type-id-5'/>
-      <return type-id='type-id-3'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='localeconv' filepath='/usr/include/locale.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-75'/>
     </function-decl>
     <function-decl name='iswctype' filepath='/usr/include/wctype.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
-      <parameter type-id='type-id-70'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-27'/>
+      <parameter type-id='type-id-26'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='towctrans' filepath='/usr/include/wctype.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
-      <parameter type-id='type-id-74'/>
-      <return type-id='type-id-43'/>
+      <parameter type-id='type-id-27'/>
+      <parameter type-id='type-id-25'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='wctrans' filepath='/usr/include/wctype.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-5'/>
-      <return type-id='type-id-74'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-25'/>
     </function-decl>
     <function-decl name='wctype' filepath='/usr/include/wctype.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-5'/>
-      <return type-id='type-id-70'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-26'/>
     </function-decl>
     <function-decl name='foo' mangled-name='_Z3fooRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3fooRKSs'>
-      <parameter type-id='type-id-87' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
-      <return type-id='type-id-84'/>
+      <parameter type-id='type-id-68' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
+      <return type-id='type-id-65'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-118'/>
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-119'/>
     <function-decl name='bar' mangled-name='_Z3barRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3barRKSs'>
-      <parameter type-id='type-id-87' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
-      <return type-id='type-id-118'/>
+      <parameter type-id='type-id-68' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
+      <return type-id='type-id-119'/>
     </function-decl>
-    <var-decl name='__dso_handle' type-id='type-id-56' visibility='default'/>
+    <var-decl name='__dso_handle' type-id='type-id-16' visibility='default'/>
   </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-read-write/test28-without-std-vars-ref.xml b/tests/data/test-read-write/test28-without-std-vars-ref.xml
index 8e0c84b2..52a220a9 100644
--- a/tests/data/test-read-write/test28-without-std-vars-ref.xml
+++ b/tests/data/test-read-write/test28-without-std-vars-ref.xml
@@ -12,147 +12,45 @@ 
     <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
   <abi-instr address-size='64' path='test24-drop-fns.cc' language='LANG_C_plus_plus'>
-    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-1'/>
+    <type-decl name='bool' size-in-bits='8' id='type-id-1'/>
     <type-decl name='char' size-in-bits='8' id='type-id-2'/>
-    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-3'/>
-    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-4'/>
-    <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-5'/>
-    <reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' id='type-id-6'/>
-    <reference-type-def kind='lvalue' type-id='type-id-4' size-in-bits='64' id='type-id-7'/>
-    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-9'/>
-    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-10'/>
-    <reference-type-def kind='lvalue' type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
-    <type-decl name='int' size-in-bits='32' id='type-id-12'/>
-    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-13'/>
-    <qualified-type-def type-id='type-id-12' const='yes' id='type-id-14'/>
-    <type-decl name='bool' size-in-bits='8' id='type-id-15'/>
-    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-16'/>
-    <qualified-type-def type-id='type-id-1' const='yes' id='type-id-17'/>
-    <type-decl name='short int' size-in-bits='16' id='type-id-18'/>
-    <qualified-type-def type-id='type-id-18' const='yes' id='type-id-19'/>
-    <type-decl name='long int' size-in-bits='64' id='type-id-20'/>
-    <qualified-type-def type-id='type-id-20' const='yes' id='type-id-21'/>
-    <typedef-decl name='_Atomic_word' type-id='type-id-12' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/atomic_word.h' line='32' column='1' id='type-id-22'/>
-    <qualified-type-def type-id='type-id-23' const='yes' id='type-id-24'/>
-    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-26'/>
-    <qualified-type-def type-id='type-id-25' const='yes' id='type-id-27'/>
-    <reference-type-def kind='lvalue' type-id='type-id-27' size-in-bits='64' id='type-id-28'/>
-    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-30'/>
-    <reference-type-def kind='lvalue' type-id='type-id-31' size-in-bits='64' id='type-id-32'/>
-    <qualified-type-def type-id='type-id-31' const='yes' id='type-id-33'/>
-    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
-    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-35'/>
-    <qualified-type-def type-id='type-id-36' const='yes' id='type-id-37'/>
-    <pointer-type-def type-id='type-id-37' size-in-bits='64' id='type-id-38'/>
-    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-39'/>
-    <reference-type-def kind='lvalue' type-id='type-id-37' size-in-bits='64' id='type-id-40'/>
-    <reference-type-def kind='lvalue' type-id='type-id-36' size-in-bits='64' id='type-id-41'/>
-    <type-decl name='unsigned int' size-in-bits='32' id='type-id-42'/>
-    <typedef-decl name='wint_t' type-id='type-id-42' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='357' column='1' id='type-id-43'/>
-    <type-decl name='wchar_t' size-in-bits='32' id='type-id-44'/>
-    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-45'/>
-    <qualified-type-def type-id='type-id-44' const='yes' id='type-id-46'/>
-    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-47'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='83' column='1' id='type-id-48'>
+    <type-decl name='double' size-in-bits='64' id='type-id-3'/>
+    <type-decl name='float' size-in-bits='32' id='type-id-4'/>
+    <type-decl name='int' size-in-bits='32' id='type-id-5'/>
+    <type-decl name='long double' size-in-bits='128' id='type-id-6'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-7'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-8'/>
+    <type-decl name='short int' size-in-bits='16' id='type-id-9'/>
+    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='53' column='1' id='type-id-10'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__count' type-id='type-id-12' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='__mbstate_t' type-id='type-id-48' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-49'/>
-    <typedef-decl name='mbstate_t' type-id='type-id-49' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-50'/>
-    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-51'/>
-    <qualified-type-def type-id='type-id-50' const='yes' id='type-id-52'/>
-    <pointer-type-def type-id='type-id-52' size-in-bits='64' id='type-id-53'/>
-    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-54'/>
-    <class-decl name='typedef __va_list_tag __va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-55'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='gp_offset' type-id='type-id-42' visibility='default'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='fp_offset' type-id='type-id-42' visibility='default'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='overflow_arg_area' type-id='type-id-56' visibility='default'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='reg_save_area' type-id='type-id-56' visibility='default'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-55' size-in-bits='64' id='type-id-57'/>
-    <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/time.h' line='133' column='1' id='type-id-58'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tm_sec' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='tm_min' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='136' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tm_hour' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='137' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='tm_mday' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='138' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='tm_mon' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='139' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='tm_year' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='140' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='tm_wday' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='141' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='tm_yday' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='142' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='tm_isdst' type-id='type-id-12' visibility='default' filepath='/usr/include/time.h' line='143' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tm_gmtoff' type-id='type-id-20' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='tm_zone' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
-      </data-member>
-    </class-decl>
-    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-59'/>
-    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-60'/>
-    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-61'/>
-    <type-decl name='double' size-in-bits='64' id='type-id-62'/>
-    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-63'/>
-    <type-decl name='float' size-in-bits='32' id='type-id-64'/>
-    <type-decl name='long double' size-in-bits='128' id='type-id-65'/>
-    <type-decl name='long long int' size-in-bits='64' id='type-id-66'/>
-    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-67'/>
-    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='53' column='1' id='type-id-68'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='decimal_point' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='57' column='1'/>
+        <var-decl name='decimal_point' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='thousands_sep' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='58' column='1'/>
+        <var-decl name='thousands_sep' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='grouping' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='64' column='1'/>
+        <var-decl name='grouping' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='64' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='int_curr_symbol' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
+        <var-decl name='int_curr_symbol' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='currency_symbol' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
+        <var-decl name='currency_symbol' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='mon_decimal_point' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
+        <var-decl name='mon_decimal_point' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='mon_thousands_sep' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
+        <var-decl name='mon_thousands_sep' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='mon_grouping' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
+        <var-decl name='mon_grouping' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='positive_sign' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
+        <var-decl name='positive_sign' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='negative_sign' type-id='type-id-3' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
+        <var-decl name='negative_sign' type-id='type-id-11' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
         <var-decl name='int_frac_digits' type-id='type-id-2' visibility='default' filepath='/usr/include/locale.h' line='77' column='1'/>
@@ -197,538 +95,641 @@ 
         <var-decl name='int_n_sign_posn' type-id='type-id-2' visibility='default' filepath='/usr/include/locale.h' line='111' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-69'/>
-    <typedef-decl name='wctype_t' type-id='type-id-1' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-70'/>
-    <typedef-decl name='__int32_t' type-id='type-id-12' filepath='/usr/include/bits/types.h' line='40' column='1' id='type-id-71'/>
-    <qualified-type-def type-id='type-id-71' const='yes' id='type-id-72'/>
+    <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/time.h' line='133' column='1' id='type-id-12'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tm_sec' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='tm_min' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tm_hour' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='tm_mday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='138' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='tm_mon' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='tm_year' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='tm_wday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='tm_yday' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='tm_isdst' type-id='type-id-5' visibility='default' filepath='/usr/include/time.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='tm_gmtoff' type-id='type-id-7' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='tm_zone' type-id='type-id-13' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='typedef __va_list_tag __va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-14'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='gp_offset' type-id='type-id-15' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='fp_offset' type-id='type-id-15' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='overflow_arg_area' type-id='type-id-16' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='reg_save_area' type-id='type-id-16' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='83' column='1' id='type-id-17'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__count' type-id='type-id-5' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_Atomic_word' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/atomic_word.h' line='32' column='1' id='type-id-18'/>
+    <typedef-decl name='__int32_t' type-id='type-id-5' filepath='/usr/include/bits/types.h' line='40' column='1' id='type-id-19'/>
+    <typedef-decl name='__mbstate_t' type-id='type-id-17' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-20'/>
+    <typedef-decl name='mbstate_t' type-id='type-id-20' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-21'/>
+    <typedef-decl name='size_t' type-id='type-id-22' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='216' column='1' id='type-id-23'/>
+    <typedef-decl name='wctrans_t' type-id='type-id-24' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-25'/>
+    <typedef-decl name='wctype_t' type-id='type-id-22' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-26'/>
+    <typedef-decl name='wint_t' type-id='type-id-15' filepath='/usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stddef.h' line='357' column='1' id='type-id-27'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-15'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-22'/>
+    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-28'/>
+    <type-decl name='wchar_t' size-in-bits='32' id='type-id-29'/>
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-31'/>
+    <reference-type-def kind='lvalue' type-id='type-id-2' size-in-bits='64' id='type-id-32'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-11'/>
+    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-33'/>
+    <reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-34'/>
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-35'/>
+    <qualified-type-def type-id='type-id-19' const='yes' id='type-id-36'/>
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-24'/>
+    <qualified-type-def type-id='type-id-1' const='yes' id='type-id-37'/>
+    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-38'/>
+    <reference-type-def kind='lvalue' type-id='type-id-38' size-in-bits='64' id='type-id-39'/>
+    <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-13'/>
+    <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-40'/>
+    <qualified-type-def type-id='type-id-5' const='yes' id='type-id-41'/>
+    <qualified-type-def type-id='type-id-7' const='yes' id='type-id-42'/>
+    <qualified-type-def type-id='type-id-21' const='yes' id='type-id-43'/>
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-44'/>
+    <qualified-type-def type-id='type-id-9' const='yes' id='type-id-45'/>
+    <qualified-type-def type-id='type-id-46' const='yes' id='type-id-47'/>
+    <reference-type-def kind='lvalue' type-id='type-id-47' size-in-bits='64' id='type-id-48'/>
+    <qualified-type-def type-id='type-id-49' const='yes' id='type-id-50'/>
+    <reference-type-def kind='lvalue' type-id='type-id-50' size-in-bits='64' id='type-id-51'/>
+    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-52'/>
+    <qualified-type-def type-id='type-id-53' const='yes' id='type-id-54'/>
+    <pointer-type-def type-id='type-id-54' size-in-bits='64' id='type-id-55'/>
+    <qualified-type-def type-id='type-id-56' const='yes' id='type-id-57'/>
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-59'/>
+    <reference-type-def kind='lvalue' type-id='type-id-59' size-in-bits='64' id='type-id-60'/>
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-61'/>
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-63'/>
+    <reference-type-def kind='lvalue' type-id='type-id-63' size-in-bits='64' id='type-id-64'/>
+    <qualified-type-def type-id='type-id-65' const='yes' id='type-id-66'/>
+    <reference-type-def kind='lvalue' type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
+    <qualified-type-def type-id='type-id-67' id='type-id-68'/>
+    <qualified-type-def type-id='type-id-12' const='yes' id='type-id-69'/>
+    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-70'/>
+    <qualified-type-def type-id='type-id-22' const='yes' id='type-id-71'/>
+    <qualified-type-def type-id='type-id-29' const='yes' id='type-id-72'/>
     <pointer-type-def type-id='type-id-72' size-in-bits='64' id='type-id-73'/>
-    <typedef-decl name='wctrans_t' type-id='type-id-73' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-74'/>
-    <reference-type-def kind='lvalue' type-id='type-id-75' size-in-bits='64' id='type-id-76'/>
-    <qualified-type-def type-id='type-id-75' const='yes' id='type-id-77'/>
-    <reference-type-def kind='lvalue' type-id='type-id-77' size-in-bits='64' id='type-id-78'/>
-    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-79'/>
-    <pointer-type-def type-id='type-id-75' size-in-bits='64' id='type-id-80'/>
-    <qualified-type-def type-id='type-id-81' const='yes' id='type-id-82'/>
-    <reference-type-def kind='lvalue' type-id='type-id-82' size-in-bits='64' id='type-id-83'/>
-    <qualified-type-def type-id='type-id-84' const='yes' id='type-id-85'/>
-    <reference-type-def kind='lvalue' type-id='type-id-85' size-in-bits='64' id='type-id-86'/>
-    <qualified-type-def type-id='type-id-86' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-74'/>
+    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-75'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-76'/>
+    <pointer-type-def type-id='type-id-46' size-in-bits='64' id='type-id-77'/>
+    <reference-type-def kind='lvalue' type-id='type-id-49' size-in-bits='64' id='type-id-78'/>
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-79'/>
+    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-81'/>
+    <reference-type-def kind='lvalue' type-id='type-id-53' size-in-bits='64' id='type-id-82'/>
+    <pointer-type-def type-id='type-id-53' size-in-bits='64' id='type-id-83'/>
+    <reference-type-def kind='lvalue' type-id='type-id-58' size-in-bits='64' id='type-id-84'/>
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-85'/>
+    <pointer-type-def type-id='type-id-14' size-in-bits='64' id='type-id-86'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-88'/>
     <namespace-decl name='std'>
-      <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-36'>
+      <class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-46'>
+        <base-class access='public' layout-offset-in-bits='0' type-id='type-id-30'/>
+      </class-decl>
+      <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-49'>
         <member-type access='private'>
-          <class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-29'>
-            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-25'/>
+          <class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-80'>
+            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-46'/>
           </class-decl>
         </member-type>
-        <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-88' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-23'/>
-        </member-type>
-        <member-type access='public'>
-          <typedef-decl name='allocator_type' type-id='type-id-25' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-89'/>
-        </member-type>
-        <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-91' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-90'/>
-        </member-type>
-        <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-93' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-92'/>
-        </member-type>
         <member-type access='private'>
-          <class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-94'/>
+          <class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-53'>
+            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-89'/>
+          </class-decl>
         </member-type>
         <member-type access='private'>
-          <class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-31'>
-            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-94'/>
-          </class-decl>
+          <class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-89'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='iterator' type-id='type-id-96' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-95'/>
+          <typedef-decl name='allocator_type' type-id='type-id-46' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-90'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_iterator' type-id='type-id-98' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-97'/>
+          <typedef-decl name='const_reference' type-id='type-id-92' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-91'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reverse_iterator' type-id='type-id-100' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-99'/>
+          <typedef-decl name='reference' type-id='type-id-94' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-93'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reverse_iterator' type-id='type-id-102' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-101'/>
+          <typedef-decl name='size_type' type-id='type-id-95' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-56'/>
         </member-type>
-      </class-decl>
-      <class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-25'>
-        <base-class access='public' layout-offset-in-bits='0' type-id='type-id-8'/>
         <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-103' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='95' column='1' id='type-id-88'/>
+          <typedef-decl name='const_iterator' type-id='type-id-97' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-96'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-6' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='99' column='1' id='type-id-91'/>
+          <typedef-decl name='const_reverse_iterator' type-id='type-id-99' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-98'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-7' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='100' column='1' id='type-id-93'/>
+          <typedef-decl name='iterator' type-id='type-id-101' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-100'/>
+        </member-type>
+        <member-type access='public'>
+          <typedef-decl name='reverse_iterator' type-id='type-id-103' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-102'/>
         </member-type>
       </class-decl>
-      <typedef-decl name='size_t' type-id='type-id-1' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/c++config.h' line='1969' column='1' id='type-id-103'/>
       <class-decl name='char_traits&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='233' column='1' id='type-id-104'>
         <member-type access='public'>
-          <typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-75'/>
+          <typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-58'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='int_type' type-id='type-id-12' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-81'/>
+          <typedef-decl name='int_type' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-62'/>
         </member-type>
       </class-decl>
-      <typedef-decl name='string' type-id='type-id-36' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-84'/>
+      <typedef-decl name='string' type-id='type-id-49' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-65'/>
       <class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-105'/>
       <typedef-decl name='ostream' type-id='type-id-105' filepath='/usr/include/c++/5.3.1/iosfwd' line='141' column='1' id='type-id-106'/>
-      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-100'/>
-      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-102'/>
+      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-99'/>
+      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-103'/>
     </namespace-decl>
     <namespace-decl name='__gnu_cxx'>
-      <class-decl name='new_allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='58' column='1' id='type-id-8'>
+      <class-decl name='new_allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='58' column='1' id='type-id-30'>
+        <member-type access='public'>
+          <typedef-decl name='const_pointer' type-id='type-id-13' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-107'/>
+        </member-type>
+        <member-type access='public'>
+          <typedef-decl name='const_reference' type-id='type-id-39' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='66' column='1' id='type-id-92'/>
+        </member-type>
         <member-type access='public'>
-          <typedef-decl name='pointer' type-id='type-id-3' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-107'/>
+          <typedef-decl name='pointer' type-id='type-id-11' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-108'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_pointer' type-id='type-id-5' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-108'/>
+          <typedef-decl name='reference' type-id='type-id-32' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='65' column='1' id='type-id-94'/>
+        </member-type>
+        <member-type access='public'>
+          <typedef-decl name='size_type' type-id='type-id-23' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='61' column='1' id='type-id-95'/>
         </member-type>
         <member-function access='public'>
           <function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcEC4Ev' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcEC4ERKS1_' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-11'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-34'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public' destructor='yes'>
           <function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorIcED4Ev' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-12' is-artificial='yes'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-5' is-artificial='yes'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='address' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE7addressERc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-13' is-artificial='yes'/>
-            <parameter type-id='type-id-91'/>
-            <return type-id='type-id-107'/>
+            <parameter type-id='type-id-35' is-artificial='yes'/>
+            <parameter type-id='type-id-94'/>
+            <return type-id='type-id-108'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='address' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE7addressERKc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-13' is-artificial='yes'/>
-            <parameter type-id='type-id-93'/>
-            <return type-id='type-id-108'/>
+            <parameter type-id='type-id-35' is-artificial='yes'/>
+            <parameter type-id='type-id-92'/>
+            <return type-id='type-id-107'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='allocate' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-88'/>
-            <parameter type-id='type-id-56'/>
-            <return type-id='type-id-107'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-95'/>
+            <parameter type-id='type-id-16'/>
+            <return type-id='type-id-108'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='deallocate' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE10deallocateEPcm' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='109' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-107'/>
-            <parameter type-id='type-id-88'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-108'/>
+            <parameter type-id='type-id-95'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='max_size' mangled-name='_ZNK9__gnu_cxx13new_allocatorIcE8max_sizeEv' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='113' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-13' is-artificial='yes'/>
-            <return type-id='type-id-88'/>
+            <parameter type-id='type-id-35' is-artificial='yes'/>
+            <return type-id='type-id-95'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='construct' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE9constructEPcRKc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-107'/>
-            <parameter type-id='type-id-7'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-108'/>
+            <parameter type-id='type-id-39'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='destroy' mangled-name='_ZN9__gnu_cxx13new_allocatorIcE7destroyEPc' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-9' is-artificial='yes'/>
-            <parameter type-id='type-id-107'/>
+            <parameter type-id='type-id-31' is-artificial='yes'/>
+            <parameter type-id='type-id-108'/>
             <return type-id='type-id-109'/>
           </function-decl>
         </member-function>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-110'/>
-      <class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-111'/>
-      <class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-112'/>
-      <class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-113'/>
-      <class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-114'/>
-      <class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-96'/>
-      <class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-98'/>
+      <class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-110'/>
+      <class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-111'/>
+      <class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-112'/>
+      <class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-113'/>
+      <class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-114'/>
+      <class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-101'/>
+      <class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-97'/>
     </namespace-decl>
     <function-decl name='btowc' filepath='/usr/include/wchar.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-43'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <class-decl name='_IO_FILE' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-115'/>
     <typedef-decl name='__FILE' type-id='type-id-115' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-116'/>
     <pointer-type-def type-id='type-id-116' size-in-bits='64' id='type-id-117'/>
     <function-decl name='fgetwc' filepath='/usr/include/wchar.h' line='745' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-117'/>
+      <parameter type-id='type-id-73'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='getwc' filepath='/usr/include/wchar.h' line='746' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='getwchar' filepath='/usr/include/wchar.h' line='752' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='mbrlen' filepath='/usr/include/wchar.h' line='376' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-5'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-13'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='mbrtowc' filepath='/usr/include/wchar.h' line='365' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-5'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-13'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='mbsinit' filepath='/usr/include/wchar.h' line='361' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-44'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='mbsrtowcs' filepath='/usr/include/wchar.h' line='408' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-54'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-40'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='putwc' filepath='/usr/include/wchar.h' line='760' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-44'/>
+      <parameter type-id='type-id-29'/>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='putwchar' filepath='/usr/include/wchar.h' line='766' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-43'/>
+      <parameter type-id='type-id-29'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='swprintf' filepath='/usr/include/wchar.h' line='604' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='swscanf' filepath='/usr/include/wchar.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='ungetwc' filepath='/usr/include/wchar.h' line='789' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
+      <parameter type-id='type-id-27'/>
       <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='vfwprintf' filepath='/usr/include/wchar.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <type-decl name='void' id='type-id-109'/>
-    <pointer-type-def type-id='type-id-109' id='type-id-56'/>
-    <function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-12'/>
-      <parameter type-id='type-id-117'/>
-      <return type-id='type-id-45'/>
-    </function-decl>
-    <function-decl name='fputwc' filepath='/usr/include/wchar.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-117'/>
-      <return type-id='type-id-43'/>
-    </function-decl>
-    <function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-117'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <function-decl name='fwide' filepath='/usr/include/wchar.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
-    </function-decl>
-    <function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vfwscanf' filepath='/usr/include/wchar.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-117'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vswprintf' filepath='/usr/include/wchar.h' line='625' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vswscanf' filepath='/usr/include/wchar.h' line='701' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vwprintf' filepath='/usr/include/wchar.h' line='620' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='vwscanf' filepath='/usr/include/wchar.h' line='697' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-57'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-86'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcrtomb' filepath='/usr/include/wchar.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcscat' filepath='/usr/include/wchar.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcscmp' filepath='/usr/include/wchar.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcscoll' filepath='/usr/include/wchar.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcscpy' filepath='/usr/include/wchar.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcscspn' filepath='/usr/include/wchar.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcsftime' filepath='/usr/include/wchar.h' line='855' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-60'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-70'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcslen' filepath='/usr/include/wchar.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcsncat' filepath='/usr/include/wchar.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcsncmp' filepath='/usr/include/wchar.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcsncpy' filepath='/usr/include/wchar.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcsrtombs' filepath='/usr/include/wchar.h' line='414' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-61'/>
-      <parameter type-id='type-id-103'/>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-74'/>
+      <parameter type-id='type-id-23'/>
+      <parameter type-id='type-id-76'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wcsspn' filepath='/usr/include/wchar.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-23'/>
+    </function-decl>
+    <type-decl name='void' id='type-id-109'/>
+    <pointer-type-def type-id='type-id-109' id='type-id-16'/>
+    <function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-5'/>
+      <parameter type-id='type-id-117'/>
+      <return type-id='type-id-87'/>
+    </function-decl>
+    <function-decl name='fputwc' filepath='/usr/include/wchar.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-117'/>
+      <return type-id='type-id-27'/>
+    </function-decl>
+    <function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-117'/>
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <function-decl name='fwide' filepath='/usr/include/wchar.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-117'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-5'/>
+    </function-decl>
+    <function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-117'/>
+      <parameter type-id='type-id-73'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-5'/>
     </function-decl>
+    <type-decl name='variadic parameter type' id='type-id-118'/>
     <function-decl name='wcstod' filepath='/usr/include/wchar.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-62'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-3'/>
     </function-decl>
     <function-decl name='wcstof' filepath='/usr/include/wchar.h' line='457' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-64'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='wcstok' filepath='/usr/include/wchar.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wcstol' filepath='/usr/include/wchar.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='wcstoul' filepath='/usr/include/wchar.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-1'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='wcsxfrm' filepath='/usr/include/wchar.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-103'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='wctob' filepath='/usr/include/wchar.h' line='357' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-27'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wmemcmp' filepath='/usr/include/wchar.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wmemcpy' filepath='/usr/include/wchar.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wmemmove' filepath='/usr/include/wchar.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wmemset' filepath='/usr/include/wchar.h' line='338' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-45'/>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-45'/>
+      <parameter type-id='type-id-87'/>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-87'/>
     </function-decl>
     <function-decl name='wprintf' filepath='/usr/include/wchar.h' line='601' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wscanf' filepath='/usr/include/wchar.h' line='642' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
       <parameter is-variadic='yes'/>
-      <return type-id='type-id-12'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='wcschr' mangled-name='wcschr' filepath='/usr/include/wchar.h' line='224' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-29'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcspbrk' mangled-name='wcspbrk' filepath='/usr/include/wchar.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcsrchr' mangled-name='wcsrchr' filepath='/usr/include/wchar.h' line='234' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-29'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcsstr' mangled-name='wcsstr' filepath='/usr/include/wchar.h' line='273' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-73'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wmemchr' mangled-name='wmemchr' filepath='/usr/include/wchar.h' line='316' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-44'/>
-      <parameter type-id='type-id-103'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-23'/>
+      <return type-id='type-id-73'/>
     </function-decl>
     <function-decl name='wcstold' filepath='/usr/include/wchar.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <return type-id='type-id-65'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='wcstoll' filepath='/usr/include/wchar.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-66'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wcstoull' filepath='/usr/include/wchar.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-63'/>
-      <parameter type-id='type-id-12'/>
-      <return type-id='type-id-67'/>
+      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-88'/>
+      <parameter type-id='type-id-5'/>
+      <return type-id='type-id-28'/>
     </function-decl>
     <function-decl name='setlocale' filepath='/usr/include/locale.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-12'/>
       <parameter type-id='type-id-5'/>
-      <return type-id='type-id-3'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='localeconv' filepath='/usr/include/locale.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-69'/>
+      <return type-id='type-id-75'/>
     </function-decl>
     <function-decl name='iswctype' filepath='/usr/include/wctype.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
-      <parameter type-id='type-id-70'/>
-      <return type-id='type-id-12'/>
+      <parameter type-id='type-id-27'/>
+      <parameter type-id='type-id-26'/>
+      <return type-id='type-id-5'/>
     </function-decl>
     <function-decl name='towctrans' filepath='/usr/include/wctype.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-43'/>
-      <parameter type-id='type-id-74'/>
-      <return type-id='type-id-43'/>
+      <parameter type-id='type-id-27'/>
+      <parameter type-id='type-id-25'/>
+      <return type-id='type-id-27'/>
     </function-decl>
     <function-decl name='wctrans' filepath='/usr/include/wctype.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-5'/>
-      <return type-id='type-id-74'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-25'/>
     </function-decl>
     <function-decl name='wctype' filepath='/usr/include/wctype.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-5'/>
-      <return type-id='type-id-70'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-26'/>
     </function-decl>
     <function-decl name='foo' mangled-name='_Z3fooRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3fooRKSs'>
-      <parameter type-id='type-id-87' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
-      <return type-id='type-id-84'/>
+      <parameter type-id='type-id-68' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
+      <return type-id='type-id-65'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-118'/>
+    <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-119'/>
     <function-decl name='bar' mangled-name='_Z3barRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3barRKSs'>
-      <parameter type-id='type-id-87' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
-      <return type-id='type-id-118'/>
+      <parameter type-id='type-id-68' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
+      <return type-id='type-id-119'/>
     </function-decl>
-    <var-decl name='__dso_handle' type-id='type-id-56' visibility='default'/>
+    <var-decl name='__dso_handle' type-id='type-id-16' visibility='default'/>
   </abi-instr>
 </abi-corpus>