[2/4,applied] Bug 30260 - Support pointer-to-member type

Message ID 87msutncj5.fsf@redhat.com
State New
Headers
Series Support C++ pointer-to-member types |

Commit Message

Dodji Seketeli Dec. 1, 2023, 3:54 p.m. UTC
  Hello,

This adds support for C++ pointer-to-member types.

Here is a screenshot of what this patch enables libabigail to do:

    $ cat -n test-ptr-to-mbr-v0.cc
	 1	struct X
	 2	{
	 3	  void f(int);
	 4	  int a;
	 5	};
	 6
	 7	int X::* pmi = &X::a;
	 8	void (X::* pmf)(int) = &X::f;
	 9

    $ diff -u test-ptr-to-mbr-v0.cc test-ptr-to-mbr-v1.cc
    --- test-ptr-to-mbr-v0.cc	2023-11-22 15:22:04.258260701 +0100
    +++ test-ptr-to-mbr-v1.cc	2023-11-22 15:23:02.482621214 +0100
    @@ -1,9 +1,8 @@
     struct X
     {
    -  void f(int);
    -  int a;
    +  void f(int, char);
    +  char a;
     };

    -int X::* pmi = &X::a;
    -void (X::* pmf)(int) = &X::f;
    -
    +auto pmi = &X::a;
    +auto pmf = &X::f;

    $ abidiff test-ptr-to-mbr-v0.o test-ptr-to-mbr-v1.o
    Functions changes summary: 0 Removed, 0 Changed, 0 Added function
    Variables changes summary: 0 Removed, 2 Changed, 0 Added variables

    2 Changed variables:

      [C] 'void (X::* pmf)(int)' was changed to 'void (X::* pmf)(int, char)' at test-ptr-to-mbr-v1.cc:8:1:
	type of variable changed:
	  pointer-to-member type changed from: 'void (X::*)(int) to: 'void (X::*)(int, char)'
	  in containing type 'struct X' of pointed-to-member type 'void (X::*)(int)' at test-ptr-to-mbr-v1.cc:1:1:
	    type size changed from 32 to 8 (in bits)
	    1 data member change:
	      type of 'int a' changed:
		type name changed from 'int' to 'char'
		type size changed from 32 to 8 (in bits)

      [C] 'int X::* pmi' was changed to 'char X::* pmi' at test-ptr-to-mbr-v1.cc:7:1:
	type of variable changed:
	  pointer-to-member type changed from: 'int X::* to: 'char X::*'
	  in data member type 'int' of pointed-to-member type 'int X::*':
	    type name changed from 'int' to 'char'
	    type size changed from 32 to 8 (in bits)
	  containing type of pointer-to-member 'struct X' changed at test-ptr-to-mbr-v0.cc:1:1, as reported earlier

    $

	* include/abg-comparison.h (class ptr_to_mbr_diff): Declare new
	class.
	(ptr_to_mbr_diff_sptr): Declare new typedef.
	(compute_diff): Declare new overload for ptr_to_mbr_diff.
	(ptr_to_mbr_type_sptr): Declare new typedef.
	* src/abg-comparison-priv.h (struct ptr_to_mbr_diff::priv): Define
	* src/abg-comparison.cc (compute_diff_for_types): Support new
	ptr_to_mbr_type type.
	(ptr_to_mbr_diff::{ptr_to_mbr_diff, first_ptr_to_mbr_type,
	second_ptr_to_mbr_type, member_type_diff, containing_type_diff,
	has_changes, has_local_changes, get_pretty_representation, report,
	chain_into_hierarchy, ~ptr_to_mbr_diff}): Define member functions
	of class ptr_to_mbr_diff.
	(compute_diff): Define overload for ptr_to_mbr_type_sptr.
	* include/abg-fwd.h (ptr_to_mbr_type_sptr): Declare new typedef.
	(is_ptr_to_mbr_type, is_pointer_to_ptr_to_mbr_type)
	(is_typedef_of_maybe_qualified_class_or_union_type): Declare new
	functions.
	* include/abg-ir.h (type_maps::ptr_to_mbr_types): Declare new
	accessor.
	(POINTER_TO_MEMBER_TYPE): Add new enumerator to enum
	type_or_decl_base::type_or_decl_kind.
	(class ptr_to_mbr_type): Declare new class.
	(equals): Declare new overload for ptr_to_mbr_type.
	(ir_node_visitor::visit_{begin,end}): Declare new member
	functions.
	* src/abg-ir.cc (ptr_to_mbr_declaration_name)
	(ptr_to_mbr_declaration_name, add_outer_ptr_to_mbr_type_expr)
	(add_outer_pointer_to_ptr_to_mbr_type_expr): Define new static
	functions.
	(type_maps::priv::ptr_to_mbr_types_): Define new
	data member.
	(type_maps::ptr_to_mbr_types): Define new accessor.
	(is_ptr_to_mbr_type, is_pointer_to_ptr_to_mbr_type)
	(is_typedef_of_maybe_qualified_class_or_union_type): Define new
	functions.
	(maybe_update_types_lookup_map, equals): Define new overloads for
	ptr_to_mbr_type_sptr.
	(is_npaf_type): Use is_ptr_to_mbr_type.
	(maybe_update_types_lookup_map): In the overload for
	decl_base_sptr, call the new overload for ptr_to_mbr_type_sptr
	above.
	(struct ptr_to_mbr_type::priv): Define new struct.
	(ptr_to_mbr_type::{ptr_to_mbr_type, get_member_type,
	get_containing_type, operator==, get_qualified_name, traverse,
	~ptr_to_mbr_type}): Define member functions of ptr_to_mbr_type.
	(types_have_similar_structure): Support the new ptr_to_mbr_type
	type.
	(ir_node_visitor::visit_{begin,end}): Add new member functions.
	(var_decl::get_pretty_representation): Support pretty-printing
	pointer-to-member types.
	(pointer_declaration_name, array_declaration_name): Likewise.
	* include/abg-reporter.h ({reporter_base, default_reporter,
	leaf_reporter}::report): Add an overload for ptr_to_mbr_diff.
	(default_reporter::report_local_ptr_to_mbr_type_changes): Declare
	a member function.
	private data class of ptr_to_mbr_diff.
	* src/abg-default-reporter.cc
	(default_reporter::report_local_ptr_to_mbr_type_changes): Define
	member functions.
	(default_reporter::report): Define an overload for
	ptr_to_mbr_diff.
	* src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise.
	* src/abg-dwarf-reader.cc (build_ptr_to_mbr_type): Define new
	function.
	(build_ir_node_from_die): Use the new build_ptr_to_mbr_type
	function.
	* src/abg-reader.cc (build_ptr_to_mbr_type): Define new function.
	(build_type): Use the new build_ptr_to_mbr_type above.
	* src/abg-writer.cc (write_ptr_to_mbr_type): Define new function.
	(write_type, write_decl, write_member_type): Use the new
	write_ptr_to_mbr_type above.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt:
	Add new test material.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-output-1.txt:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.o:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc:
	Likewise.
	* tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.o:
	Likewise.
	* tests/data/test-read-dwarf/test-pointer-to-member-1.cc:
	Likewise.
	* tests/data/test-read-dwarf/test-pointer-to-member-1.o: Likewise.
	* tests/data/test-read-dwarf/test-pointer-to-member-1.o.abi:
	Likewise.
	* tests/data/Makefile.am: Add the new test material above to
	source distribution.
	* tests/test-abidiff-exit.cc (in_out_specs): Add the test material
	above to this test harness.
	* tests/test-annotate.cc (in_out_specs): Likewise.
	* tests/test-read-dwarf.cc: Likewise.
	* tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Adjust.
	* tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applied to master.
---
 include/abg-comparison.h                      |    62 +
 include/abg-fwd.h                             |    21 +
 include/abg-ir.h                              |    75 +-
 include/abg-reporter.h                        |    18 +
 src/abg-comparison-priv.h                     |    13 +
 src/abg-comparison.cc                         |   161 +
 src/abg-default-reporter.cc                   |    94 +
 src/abg-dwarf-reader.cc                       |    91 +-
 src/abg-ir.cc                                 |   749 +-
 src/abg-leaf-reporter.cc                      |    15 +
 src/abg-reader.cc                             |    85 +
 src/abg-writer.cc                             |   106 +-
 tests/data/Makefile.am                        |    29 +
 .../test-ptr-to-mbr1-output-1.txt             |    18 +
 .../pointer-to-member/test-ptr-to-mbr1-v0.cc  |     7 +
 .../pointer-to-member/test-ptr-to-mbr1-v0.o   |   Bin 0 -> 2624 bytes
 .../pointer-to-member/test-ptr-to-mbr1-v1.cc  |     6 +
 .../pointer-to-member/test-ptr-to-mbr1-v1.o   |   Bin 0 -> 2656 bytes
 .../test-ptr-to-mbr2-output-1.txt             |    13 +
 .../pointer-to-member/test-ptr-to-mbr2-v0.cc  |     7 +
 .../pointer-to-member/test-ptr-to-mbr2-v0.o   |   Bin 0 -> 2624 bytes
 .../pointer-to-member/test-ptr-to-mbr2-v1.cc  |     6 +
 .../pointer-to-member/test-ptr-to-mbr2-v1.o   |   Bin 0 -> 2624 bytes
 .../test-ptr-to-mbr3-output-1.txt             |    20 +
 .../pointer-to-member/test-ptr-to-mbr3-v0.cc  |     7 +
 .../pointer-to-member/test-ptr-to-mbr3-v0.o   |   Bin 0 -> 2624 bytes
 .../pointer-to-member/test-ptr-to-mbr3-v1.cc  |     6 +
 .../pointer-to-member/test-ptr-to-mbr3-v1.o   |   Bin 0 -> 2664 bytes
 .../test-ptr-to-mbr4-output-1.txt             |    12 +
 .../pointer-to-member/test-ptr-to-mbr4-v0.cc  |     8 +
 .../pointer-to-member/test-ptr-to-mbr4-v0.o   |   Bin 0 -> 2688 bytes
 .../pointer-to-member/test-ptr-to-mbr4-v1.cc  |     7 +
 .../pointer-to-member/test-ptr-to-mbr4-v1.o   |   Bin 0 -> 2696 bytes
 .../test-ptr-to-mbr5-output-1.txt             |     0
 .../pointer-to-member/test-ptr-to-mbr5-v0.cc  |     8 +
 .../pointer-to-member/test-ptr-to-mbr5-v0.o   |   Bin 0 -> 2640 bytes
 .../pointer-to-member/test-ptr-to-mbr5-v1.cc  |     7 +
 .../pointer-to-member/test-ptr-to-mbr5-v1.o   |   Bin 0 -> 2648 bytes
 .../test-pointer-to-member-1.o.annotated.abi  |    99 +
 .../PR22015-libboost_iostreams.so.abi         |  2729 +-
 .../test-pointer-to-member-1.cc               |    30 +
 .../test-pointer-to-member-1.o                |   Bin 0 -> 4360 bytes
 .../test-pointer-to-member-1.o.abi            |    59 +
 .../test-read-dwarf/test12-pr18844.so.abi     | 24153 ++++++++--------
 tests/test-abidiff-exit.cc                    |    75 +
 tests/test-annotate.cc                        |     5 +
 tests/test-read-dwarf.cc                      |     9 +
 47 files changed, 15415 insertions(+), 13395 deletions(-)
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-output-1.txt
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.o
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc
 create mode 100644 tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.o
 create mode 100644 tests/data/test-annotate/test-pointer-to-member-1.o.annotated.abi
 create mode 100644 tests/data/test-read-dwarf/test-pointer-to-member-1.cc
 create mode 100644 tests/data/test-read-dwarf/test-pointer-to-member-1.o
 create mode 100644 tests/data/test-read-dwarf/test-pointer-to-member-1.o.abi

new file mode 100644
index 00000000..3a536856
new file mode 100644
index 00000000..ad065c1a
new file mode 100644
index 00000000..f9828109
new file mode 100644
index 00000000..939fae6c
new file mode 100644
index 00000000..d9dabec6
new file mode 100644
index 00000000..617257b0
new file mode 100644
index 00000000..ba677741
new file mode 100644
index 00000000..e69de29b
new file mode 100644
index 00000000..fc2cc13a
new file mode 100644
index 00000000..02e54955
new file mode 100644
index 00000000..39980bcd
  

Patch

diff --git a/include/abg-comparison.h b/include/abg-comparison.h
index 9155cc54..f6e25e20 100644
--- a/include/abg-comparison.h
+++ b/include/abg-comparison.h
@@ -1416,6 +1416,68 @@  compute_diff(reference_type_def_sptr first,
 	     diff_context_sptr ctxt);
 
 
+class ptr_to_mbr_diff;
+
+/// Typedef of a shared_ptr to @ref ptr_to_mbr_diff
+typedef shared_ptr<ptr_to_mbr_diff> ptr_to_mbr_diff_sptr;
+
+/// The abstraction of a diff between two @ref ptr_to_mbr_type.
+class ptr_to_mbr_diff : public type_diff_base
+{
+  struct priv;
+  std::unique_ptr<priv> priv_;
+
+  ptr_to_mbr_diff()  = default;
+
+protected:
+  ptr_to_mbr_diff(const ptr_to_mbr_type_sptr& first,
+		  const ptr_to_mbr_type_sptr& second,
+		  const diff_sptr&	      member_type_diff,
+		  const diff_sptr&	      containing_type_diff,
+		  diff_context_sptr	      ctxt);
+
+public:
+
+  ptr_to_mbr_type_sptr
+  first_ptr_to_mbr_type() const;
+
+  ptr_to_mbr_type_sptr
+  second_ptr_to_mbr_type() const;
+
+  const diff_sptr
+  member_type_diff() const;
+
+  const diff_sptr
+  containing_type_diff() const;
+
+  virtual bool
+  has_changes() const;
+
+  virtual enum change_kind
+  has_local_changes() const;
+
+  virtual const string&
+  get_pretty_representation() const;
+
+  virtual void
+  report(ostream&, const string& indent = "") const;
+
+  virtual void
+  chain_into_hierarchy();
+
+  virtual ~ptr_to_mbr_diff();
+
+  friend ptr_to_mbr_diff_sptr
+  compute_diff(const ptr_to_mbr_type_sptr& first,
+	       const ptr_to_mbr_type_sptr& second,
+	       diff_context_sptr&		  ctxt);
+}; // end class ptr_to_mbr_diff
+
+ptr_to_mbr_diff_sptr
+compute_diff(const ptr_to_mbr_type_sptr& first,
+	     const ptr_to_mbr_type_sptr& second,
+	     diff_context_sptr&	 ctxt);
+
 class subrange_diff;
 
 /// A convenience typedef for a shared pointer to subrange_diff type.
diff --git a/include/abg-fwd.h b/include/abg-fwd.h
index 3687d346..51043af2 100644
--- a/include/abg-fwd.h
+++ b/include/abg-fwd.h
@@ -231,6 +231,10 @@  class reference_type_def;
 /// Convenience typedef for a shared pointer on a @ref reference_type_def
 typedef shared_ptr<reference_type_def> reference_type_def_sptr;
 
+class ptr_to_mbr_type;
+/// Convenience typedef for a shared pointer to a @ref ptr_to_mbr_type
+typedef shared_ptr<ptr_to_mbr_type> ptr_to_mbr_type_sptr;
+
 class array_type_def;
 
 /// Convenience typedef for a shared pointer on a @ref array_type_def
@@ -553,12 +557,21 @@  is_pointer_to_function_type(const type_base_sptr&);
 pointer_type_def_sptr
 is_pointer_to_array_type(const type_base_sptr&);
 
+pointer_type_def_sptr
+is_pointer_to_ptr_to_mbr_type(const type_base_sptr&);
+
 pointer_type_def_sptr
 is_pointer_to_npaf_type(const type_base_sptr&);
 
 bool
 is_typedef_ptr_or_ref_to_decl_only_class_or_union_type(const type_base* t);
 
+bool
+is_typedef_of_maybe_qualified_class_or_union_type(const type_base* t);
+
+bool
+is_typedef_of_maybe_qualified_class_or_union_type(const type_base_sptr& t);
+
 reference_type_def*
 is_reference_type(type_or_decl_base*, bool look_through_qualifiers=false);
 
@@ -569,6 +582,14 @@  reference_type_def_sptr
 is_reference_type(const type_or_decl_base_sptr&,
 		  bool look_through_qualifiers=false);
 
+const ptr_to_mbr_type*
+is_ptr_to_mbr_type(const type_or_decl_base*,
+		   bool look_through_qualifiers=false);
+
+ptr_to_mbr_type_sptr
+is_ptr_to_mbr_type(const type_or_decl_base_sptr&,
+		   bool look_through_qualifiers=false);
+
 const type_base*
 is_void_pointer_type(const type_base*);
 
diff --git a/include/abg-ir.h b/include/abg-ir.h
index 8ed8d734..a500762a 100644
--- a/include/abg-ir.h
+++ b/include/abg-ir.h
@@ -637,6 +637,12 @@  public:
   const istring_type_base_wptrs_map_type&
   pointer_types() const;
 
+  istring_type_base_wptrs_map_type&
+  ptr_to_mbr_types();
+
+  const istring_type_base_wptrs_map_type&
+  ptr_to_mbr_types() const;
+
   istring_type_base_wptrs_map_type&
   reference_types();
 
@@ -1382,13 +1388,14 @@  protected:
     QUALIFIED_TYPE = 1 << 12,
     POINTER_TYPE = 1 << 13,
     REFERENCE_TYPE = 1 << 14,
-    ARRAY_TYPE = 1 << 15,
-    ENUM_TYPE = 1 << 16,
-    TYPEDEF_TYPE = 1 << 17,
-    CLASS_TYPE = 1 << 18,
-    UNION_TYPE = 1 << 19,
-    FUNCTION_TYPE = 1 << 20,
-    METHOD_TYPE = 1 << 21,
+    POINTER_TO_MEMBER_TYPE = 1 << 15,
+    ARRAY_TYPE = 1 << 16,
+    ENUM_TYPE = 1 << 17,
+    TYPEDEF_TYPE = 1 << 18,
+    CLASS_TYPE = 1 << 19,
+    UNION_TYPE = 1 << 20,
+    FUNCTION_TYPE = 1 << 21,
+    METHOD_TYPE = 1 << 22,
   }; // end enum type_or_decl_kind
 
   enum type_or_decl_kind
@@ -2444,6 +2451,57 @@  operator==(const reference_type_def_sptr&, const reference_type_def_sptr&);
 bool
 operator!=(const reference_type_def_sptr&, const reference_type_def_sptr&);
 
+/// The abstraction of a pointer-to-member type.
+class ptr_to_mbr_type : public virtual type_base,
+			public virtual decl_base
+{
+  struct priv;
+  std::unique_ptr<priv> priv_;
+
+  // Forbidden
+  ptr_to_mbr_type() = delete;
+
+  public:
+  ptr_to_mbr_type(const environment&		env,
+		  const type_base_sptr&	member_type,
+		  const type_base_sptr&	containing_type,
+		  size_t			size_in_bits,
+		  size_t			alignment_in_bits,
+		  const location&		locus);
+
+  const type_base_sptr&
+  get_member_type() const;
+
+  const type_base_sptr&
+  get_containing_type() const;
+
+  bool
+  operator==(const ptr_to_mbr_type&) const;
+
+  virtual bool
+  operator==(const type_base&) const;
+
+  virtual bool
+  operator==(const decl_base&) const;
+
+  virtual void
+  get_qualified_name(interned_string& qualified_name,
+		     bool internal = false) const;
+
+  virtual const interned_string&
+  get_qualified_name(bool internal = false) const;
+
+  virtual bool
+  traverse(ir_node_visitor& v);
+
+  virtual ~ptr_to_mbr_type();
+}; // end class ptr_to_mbr_type
+
+bool
+equals(const ptr_to_mbr_type&,
+       const ptr_to_mbr_type&,
+       change_kind*);
+
 bool
 equals(const array_type_def&, const array_type_def&, change_kind*);
 
@@ -4925,6 +4983,9 @@  public:
   virtual bool visit_begin(reference_type_def*);
   virtual bool visit_end(reference_type_def*);
 
+  virtual bool visit_begin(ptr_to_mbr_type*);
+  virtual bool visit_end(ptr_to_mbr_type*);
+
   virtual bool visit_begin(array_type_def*);
   virtual bool visit_end(array_type_def*);
 
diff --git a/include/abg-reporter.h b/include/abg-reporter.h
index 8104c653..a701d9d7 100644
--- a/include/abg-reporter.h
+++ b/include/abg-reporter.h
@@ -32,6 +32,7 @@  class qualified_type_diff;
 class distinct_diff;
 class pointer_diff;
 class reference_diff;
+class ptr_to_mbr_diff;
 class subrange_diff;
 class array_diff;
 class base_diff;
@@ -89,6 +90,10 @@  public:
   report(const reference_diff& d, std::ostream& out,
 	 const std::string& indent = "") const = 0;
 
+  virtual void
+  report(const ptr_to_mbr_diff& d, std::ostream& out,
+	 const std::string& indent = "") const = 0;
+
   virtual void
   report(const array_diff& d, std::ostream& out,
 	 const std::string& indent = "") const = 0;
@@ -200,6 +205,15 @@  public:
   report(const reference_diff& d, std::ostream& out,
 	 const std::string& indent = "") const;
 
+  bool
+  report_local_ptr_to_mbr_type_changes(const ptr_to_mbr_diff& d,
+				       std::ostream& out,
+				       const std::string& indent = "") const;
+
+  virtual void
+  report(const ptr_to_mbr_diff& d, std::ostream& out,
+	 const std::string& indent = "") const;
+
   virtual void
   report(const fn_parm_diff& d, std::ostream& out,
 	 const std::string& indent = "") const;
@@ -291,6 +305,10 @@  public:
   report(const reference_diff& d, std::ostream& out,
 	 const std::string& indent = "") const;
 
+  virtual void
+  report(const ptr_to_mbr_diff& d, std::ostream& out,
+	 const std::string& indent = "") const;
+
   virtual void
   report(const fn_parm_diff& d, std::ostream& out,
 	 const std::string& indent = "") const;
diff --git a/src/abg-comparison-priv.h b/src/abg-comparison-priv.h
index 9802e78f..3f86db5e 100644
--- a/src/abg-comparison-priv.h
+++ b/src/abg-comparison-priv.h
@@ -443,6 +443,19 @@  struct reference_diff::priv
   {}
 };//end struct reference_diff::priv
 
+/// The private data of the @ref ptr_to_mbr_diff type.
+struct ptr_to_mbr_diff::priv
+{
+  diff_sptr member_type_diff_;
+  diff_sptr containing_type_diff_;
+
+  priv(const diff_sptr& member_type_diff,
+       const diff_sptr& containing_type_diff)
+    : member_type_diff_(member_type_diff),
+      containing_type_diff_(containing_type_diff)
+  {}
+};//end ptr_to_mbr_diff::priv
+
 struct qualified_type_diff::priv
 {
   diff_sptr underlying_type_diff;
diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc
index 8a705c54..fdd2a688 100644
--- a/src/abg-comparison.cc
+++ b/src/abg-comparison.cc
@@ -3041,6 +3041,7 @@  compute_diff_for_types(const type_or_decl_base_sptr& first,
    ||(d = try_to_diff<class_decl>(f, s,ctxt))
    ||(d = try_to_diff<pointer_type_def>(f, s, ctxt))
    ||(d = try_to_diff<reference_type_def>(f, s, ctxt))
+   ||(d = try_to_diff<ptr_to_mbr_type>(f, s, ctxt))
    ||(d = try_to_diff<array_type_def::subrange_type>(f, s, ctxt))
    ||(d = try_to_diff<array_type_def>(f, s, ctxt))
    ||(d = try_to_diff<qualified_type_def>(f, s, ctxt))
@@ -4143,6 +4144,166 @@  compute_diff(reference_type_def_sptr	first,
 }
 // </reference_type_def>
 
+// <ptr_to_mbr_diff stuff>
+
+
+/// Constructor of @ref ptr_to_mbr_diff.
+///
+/// @param first the first pointer-to-member subject of the diff.
+///
+/// @param second the second pointer-to-member subject of the diff.
+///
+/// @param member_type_diff the diff node carrying changes to the
+/// member type of the pointer-to-member we are considering.
+///
+/// @param containing_type_diff the diff node carrying changes to the
+/// containing type of the pointer-to-member we are considering.
+///
+/// @param ctxt the context of the diff we are considering.
+ptr_to_mbr_diff::ptr_to_mbr_diff(const ptr_to_mbr_type_sptr& first,
+				 const ptr_to_mbr_type_sptr& second,
+				 const diff_sptr&	     member_type_diff,
+				 const diff_sptr&	     containing_type_diff,
+				 diff_context_sptr	     ctxt)
+  : type_diff_base(first, second, ctxt),
+    priv_(new priv(member_type_diff, containing_type_diff))
+{}
+
+/// Getter of the first pointer-to-member subject of the current diff
+/// node.
+///
+/// @return the first pointer-to-member subject of the current diff
+/// node.
+ptr_to_mbr_type_sptr
+ptr_to_mbr_diff::first_ptr_to_mbr_type() const
+{return dynamic_pointer_cast<ptr_to_mbr_type>(first_subject());}
+
+/// Getter of the second pointer-to-member subject of the current diff
+/// node.
+///
+/// @return the second pointer-to-member subject of the current diff
+/// node.
+ptr_to_mbr_type_sptr
+ptr_to_mbr_diff::second_ptr_to_mbr_type() const
+{return dynamic_pointer_cast<ptr_to_mbr_type>(second_subject());}
+
+/// Getter of the diff node carrying changes to the member type of
+/// first subject of the current diff node.
+///
+/// @return The diff node carrying changes to the member type of first
+/// subject of the current diff node.
+const diff_sptr
+ptr_to_mbr_diff::member_type_diff() const
+{return priv_->member_type_diff_;}
+
+/// Getter of the diff node carrying changes to the containing type of
+/// first subject of the current diff node.
+///
+/// @return The diff node carrying changes to the containing type of
+/// first subject of the current diff node.
+const diff_sptr
+ptr_to_mbr_diff::containing_type_diff() const
+{return priv_->containing_type_diff_;}
+
+/// Test whether the current diff node carries any change.
+///
+/// @return true iff the current diff node carries any change.
+bool
+ptr_to_mbr_diff::has_changes() const
+{
+  return first_ptr_to_mbr_type() != second_ptr_to_mbr_type();
+}
+
+/// Test whether the current diff node carries any local change.
+///
+/// @return true iff the current diff node carries any local change.
+enum change_kind
+ptr_to_mbr_diff::has_local_changes() const
+{
+  ir::change_kind k = ir::NO_CHANGE_KIND;
+  if (!equals(*first_ptr_to_mbr_type(), *second_ptr_to_mbr_type(), &k))
+    return k & ir::ALL_LOCAL_CHANGES_MASK;
+  return ir::NO_CHANGE_KIND;
+}
+
+/// Get the pretty representation of the current @ref ptr_to_mbr_diff
+/// node.
+///
+/// @return the pretty representation of the current diff node.
+const string&
+ptr_to_mbr_diff::get_pretty_representation() const
+{
+  if (diff::priv_->pretty_representation_.empty())
+    {
+      std::ostringstream o;
+      o << "ptr_to_mbr_diff["
+	<< first_subject()->get_pretty_representation()
+	<< ", "
+	<< second_subject()->get_pretty_representation()
+	<< "]";
+      diff::priv_->pretty_representation_ = o.str();
+    }
+  return diff::priv_->pretty_representation_;
+}
+
+void
+ptr_to_mbr_diff::report(ostream& out, const string& indent) const
+{
+  context()->get_reporter()->report(*this, out, indent);
+}
+
+/// Populate the vector of children node of the @ref diff base type
+/// sub-object of this instance of @ref ptr_to_mbr_diff.
+///
+/// The children node can then later be retrieved using
+/// diff::children_node().
+void
+ptr_to_mbr_diff::chain_into_hierarchy()
+{
+  append_child_node(member_type_diff());
+  append_child_node(containing_type_diff());
+}
+
+/// Destructor of @ref ptr_to_mbr_diff.
+ptr_to_mbr_diff::~ptr_to_mbr_diff()
+{
+}
+
+/// Compute the diff between two @ref ptr_to_mbr_type types.
+///
+/// Note that the two types must have been created in the same @ref
+/// environment, otherwise, this function aborts.
+///
+/// @param first the first pointer-to-member type to consider for the diff.
+///
+/// @param second the second pointer-to-member type to consider for the diff.
+///
+/// @param ctxt the diff context to use.
+ptr_to_mbr_diff_sptr
+compute_diff(const ptr_to_mbr_type_sptr& first,
+	     const ptr_to_mbr_type_sptr& second,
+	     diff_context_sptr&	 ctxt)
+{
+  diff_sptr member_type_diff =
+    compute_diff(is_type(first->get_member_type()),
+		 is_type(second->get_member_type()),
+		 ctxt);
+
+  diff_sptr containing_type_diff =
+    compute_diff(is_type(first->get_containing_type()),
+		 is_type(second->get_containing_type()),
+		 ctxt);
+
+  ptr_to_mbr_diff_sptr result(new ptr_to_mbr_diff(first, second,
+						  member_type_diff,
+						  containing_type_diff,
+						  ctxt));
+  ctxt->initialize_canonical_diff(result);
+  return result;
+}
+
+// </ptr_to_mbr_diff stuff>
+
 // <qualified_type_diff stuff>
 
 /// Populate the vector of children node of the @ref diff base type
diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc
index c71f8d56..0b317fac 100644
--- a/src/abg-default-reporter.cc
+++ b/src/abg-default-reporter.cc
@@ -522,6 +522,100 @@  default_reporter::report(const reference_diff& d, ostream& out,
       }
 }
 
+/// Report the local changes carried by a @ref ptr_to_mbr_diff diff
+/// node.
+///
+/// This is a subroutine of the method default_reporter::report() that
+/// emits change report for @ref ptr_to_mbr_diff node.
+///
+/// @param d the diff node to consider
+///
+/// @param out the output stream to emit the report to.
+///
+/// @param indent the indentation string (spaces) to use in the
+/// report.
+///
+/// @return truf iff a report was emitted to the output stream.
+bool
+default_reporter::report_local_ptr_to_mbr_type_changes(const ptr_to_mbr_diff& d,
+						       std::ostream& out,
+						       const std::string& indent) const
+{
+  if (!d.to_be_reported())
+    return false;
+
+  ptr_to_mbr_type_sptr f = d.first_ptr_to_mbr_type(),
+    s = d.second_ptr_to_mbr_type();
+
+  enum change_kind k = ir::NO_CHANGE_KIND;
+  equals(*d.first_ptr_to_mbr_type(), *d.second_ptr_to_mbr_type(), &k);
+
+  if (k & ALL_LOCAL_CHANGES_MASK)
+    {
+      string f_repr = f->get_pretty_representation(),
+	s_repr = s->get_pretty_representation();
+
+      out << indent;
+      out << "pointer-to-member type changed from: '"
+	  << f_repr << " to: '"<< s_repr << "'\n";
+      return true;
+    }
+  return false;
+}
+
+
+/// Emit a textual report about the changes carried by a @ref
+/// ptr_to_mbr_diff diff node.
+///
+/// @param out the output stream to emit the report to.
+///
+/// @param indent the indentation string to use for the report.
+void
+default_reporter::report(const ptr_to_mbr_diff& d,
+			 std::ostream& out,
+			 const std::string& indent) const
+{
+  if (!d.to_be_reported())
+    return;
+
+  report_local_ptr_to_mbr_type_changes(d, out, indent);
+
+  if (diff_sptr dif = d.member_type_diff())
+    {
+      RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2
+	(dif,"data member type of pointer-to-member");
+      if (dif->to_be_reported())
+	{
+	  out << indent
+	      << "in data member type '"
+	      << dif->first_subject()->get_pretty_representation()
+	      << "' of pointed-to-member type '"
+	      << d.first_ptr_to_mbr_type()->get_pretty_representation()
+	      << "'";
+	  report_loc_info(dif->second_subject(), *d.context(), out);
+	  out << ":\n";
+	  dif->report(out, indent + "  ");
+	}
+    }
+  if (diff_sptr dif = d.containing_type_diff())
+    {
+      RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2
+	(dif,"containing type of pointer-to-member");
+      if (dif->to_be_reported())
+	{
+	  out << indent
+	      << "in containing type '"
+	      << dif->first_subject()->get_pretty_representation()
+	      << "' of pointed-to-member type '"
+	      << d.first_ptr_to_mbr_type()->get_pretty_representation()
+	      << "'";
+	  report_loc_info(dif->second_subject(), *d.context(), out);
+	  out << ":\n";
+	  dif->report(out, indent + "  ");
+	}
+    }
+}
+
 /// Emit a textual report about the a @ref fn_parm_diff instance.
 ///
 /// @param d the @ref fn_parm_diff to consider.
diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
index 0cf1ce14..15a35edf 100644
--- a/src/abg-dwarf-reader.cc
+++ b/src/abg-dwarf-reader.cc
@@ -13994,6 +13994,81 @@  build_reference_type(reader&	rdr,
   return result;
 }
 
+/// Build an instance of @ref ptr_to_mbr_type from a DIE of tag
+/// DW_TAG_ptr_to_member_type.
+///
+/// @param the DWARF reader touse.
+///
+/// @param the DIE to consider.  It must carry the tag
+/// DW_TAG_ptr_to_member_type.
+///
+/// @param called_from_public_decl true if this function was called
+/// from a context where either a public function or a public variable
+/// is being built.
+///
+/// @param where_offset the offset of the DIE where we are "logically"
+/// positionned at, in the DIE tree.  This is useful when @p die is
+/// e.g, DW_TAG_partial_unit that can be included in several places in
+/// the DIE tree.
+///
+/// @return a pointer to the resulting @ref ptr_to_mbr_type.
+static ptr_to_mbr_type_sptr
+build_ptr_to_mbr_type(reader&		rdr,
+		      Dwarf_Die*	die,
+		      bool		called_from_public_decl,
+		      size_t		where_offset)
+{
+  ptr_to_mbr_type_sptr result;
+
+  if (!die)
+    return result;
+
+  unsigned tag = dwarf_tag(die);
+  if (tag != DW_TAG_ptr_to_member_type)
+    return result;
+
+  Dwarf_Die data_member_type_die, containing_type_die;
+
+  if (!die_die_attribute(die, DW_AT_type, data_member_type_die)
+      || !die_die_attribute(die, DW_AT_containing_type, containing_type_die))
+    return result;
+
+  type_or_decl_base_sptr data_member_type =
+    build_ir_node_from_die(rdr, &data_member_type_die,
+			   called_from_public_decl, where_offset);
+  if (!data_member_type)
+    return result;
+
+  type_or_decl_base_sptr containing_type =
+    build_ir_node_from_die(rdr, &containing_type_die,
+			   called_from_public_decl, where_offset);
+  if (!containing_type)
+    return result;
+
+  if (!is_typedef_of_maybe_qualified_class_or_union_type
+      (is_type(containing_type)))
+    return result;
+
+  if (type_base_sptr t = rdr.lookup_type_from_die(die))
+    {
+      result = is_ptr_to_mbr_type(t);
+      ABG_ASSERT(result);
+      return result;
+    }
+
+  uint64_t size_in_bits = rdr.cur_transl_unit()->get_address_size();
+
+  result.reset(new ptr_to_mbr_type(data_member_type->get_environment(),
+				   is_type(data_member_type),
+				   is_type(containing_type),
+				   size_in_bits,
+				   /*alignment=*/0,
+				   location()));
+
+  rdr.associate_die_to_type(die, result, where_offset);
+  return result;
+}
+
 /// Build a subroutine type from a DW_TAG_subroutine_type DIE.
 ///
 /// @param rdr the DWARF reader to consider.
@@ -15511,6 +15586,20 @@  build_ir_node_from_die(reader&	rdr,
       }
       break;
 
+    case DW_TAG_ptr_to_member_type:
+      {
+	ptr_to_mbr_type_sptr p =
+	  build_ptr_to_mbr_type(rdr, die, called_from_public_decl,
+				where_offset);
+	if (p)
+	  {
+	    result =
+	      add_decl_to_scope(p, rdr.cur_transl_unit()->get_global_scope());
+	    maybe_canonicalize_type(p, rdr);
+	  }
+      }
+      break;
+
     case DW_TAG_const_type:
     case DW_TAG_volatile_type:
     case DW_TAG_restrict_type:
@@ -15707,8 +15796,6 @@  build_ir_node_from_die(reader&	rdr,
       break;
     case DW_TAG_file_type:
       break;
-    case DW_TAG_ptr_to_member_type:
-      break;
     case DW_TAG_thrown_type:
       break;
     case DW_TAG_interface_type:
diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 06cfe558..56d71465 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -231,6 +231,16 @@  pointer_declaration_name(const type_base_sptr& ptr,
 			 const string& variable_name,
 			 bool qualified, bool internal);
 
+static interned_string
+ptr_to_mbr_declaration_name(const ptr_to_mbr_type* ptr,
+			    const string& variable_name,
+			    bool qualified, bool internal);
+
+static interned_string
+ptr_to_mbr_declaration_name(const ptr_to_mbr_type_sptr& ptr,
+			    const string& variable_name,
+			    bool qualified, bool internal);
+
 static interned_string
 array_declaration_name(const array_type_def* array,
 		       const string& variable_name,
@@ -264,6 +274,22 @@  static string
 add_outer_pointer_to_array_type_expr(const type_base_sptr& pointer_to_ar,
 				     const string& input, bool qualified,
 				     bool internal);
+
+static string
+add_outer_ptr_to_mbr_type_expr(const ptr_to_mbr_type* p,
+			       const  string& input, bool qualified,
+			       bool internal);
+
+static string
+add_outer_ptr_to_mbr_type_expr(const ptr_to_mbr_type_sptr& p,
+			       const  string& input, bool qualified,
+			       bool internal);
+
+static string
+add_outer_pointer_to_ptr_to_mbr_type_expr(const type_base* p,
+					  const  string& input,
+					  bool qualified, bool internal);
+
 void
 push_composite_type_comparison_operands(const type_base& left,
 					const type_base& right);
@@ -540,6 +566,7 @@  struct type_maps::priv
   mutable istring_type_base_wptrs_map_type	typedef_types_;
   mutable istring_type_base_wptrs_map_type	qualified_types_;
   mutable istring_type_base_wptrs_map_type	pointer_types_;
+  mutable istring_type_base_wptrs_map_type	ptr_to_mbr_types_;
   mutable istring_type_base_wptrs_map_type	reference_types_;
   mutable istring_type_base_wptrs_map_type	array_types_;
   mutable istring_type_base_wptrs_map_type	subrange_types_;
@@ -660,6 +687,20 @@  istring_type_base_wptrs_map_type&
 type_maps::pointer_types()
 {return priv_->pointer_types_;}
 
+/// Getter for the map that associates the name of a pointer-to-member
+/// type to the vector of instances of @ref ptr_to_mbr_type_sptr that
+/// represents that type.
+istring_type_base_wptrs_map_type&
+type_maps::ptr_to_mbr_types()
+{return priv_->ptr_to_mbr_types_;}
+
+/// Getter for the map that associates the name of a pointer-to-member
+/// type to the vector of instances of @ref ptr_to_mbr_type_sptr that
+/// represents that type.
+const istring_type_base_wptrs_map_type&
+type_maps::ptr_to_mbr_types() const
+{return priv_->ptr_to_mbr_types_;}
+
 /// Getter for the map that associates the name of a pointer type to
 /// the vector of instances of @ref pointer_type_def_sptr that
 /// represents that type.
@@ -10584,7 +10625,10 @@  is_anonymous_type(const type_base_sptr& t)
 bool
 is_npaf_type(const type_base_sptr& t)
 {
-  if (!(is_pointer_type(t) || is_array_type(t) || is_function_type(t)))
+  if (!(is_pointer_type(t)
+	|| is_array_type(t)
+	|| is_function_type(t)
+	|| is_ptr_to_mbr_type(t)))
     return true;
   return false;
 }
@@ -11173,6 +11217,23 @@  is_pointer_to_npaf_type(const type_base_sptr& t)
   return pointer_type_def_sptr();
 }
 
+/// Test if we are looking at a pointer to pointer to member type.
+///
+/// @param t the type to consider.
+///
+/// @return the @ref pointer_type_def_sptr type iff @p t is a pointer
+/// to pointer to member type.
+pointer_type_def_sptr
+is_pointer_to_ptr_to_mbr_type(const type_base_sptr& t)
+{
+  if (pointer_type_def_sptr p = is_pointer_type(t))
+    {
+      if (is_ptr_to_mbr_type(p->get_pointed_to_type()))
+	return p;
+    }
+  return pointer_type_def_sptr();
+}
+
 /// Test if a type is a typedef, pointer or reference to a decl-only
 /// class/union.
 ///
@@ -11195,6 +11256,43 @@  is_typedef_ptr_or_ref_to_decl_only_class_or_union_type(const type_base* t)
   return false;
 }
 
+/// Test if a type is a typedef of a class or union type, or a typedef
+/// of a qualified class or union type.
+///
+/// Note that if the type is directly a class or union type, the
+/// function returns true as well.
+///
+/// @param t the type to consider.
+///
+/// @return true iff @p t is a typedef of a class or union type, or a
+/// typedef of a qualified class or union type.
+bool
+is_typedef_of_maybe_qualified_class_or_union_type(const type_base* t)
+{
+  if (!t)
+    return false;
+
+  t = peel_qualified_or_typedef_type(t);
+  if (is_class_or_union_type(t))
+    return true;
+
+return false;
+}
+
+/// Test if a type is a typedef of a class or union type, or a typedef
+/// of a qualified class or union type.
+///
+/// Note that if the type is directly a class or union type, the
+/// function returns true as well.
+///
+/// @param t the type to consider.
+///
+/// @return true iff @p t is a typedef of a class or union type, or a
+/// typedef of a qualified class or union type.
+bool
+is_typedef_of_maybe_qualified_class_or_union_type(const type_base_sptr& t)
+{return is_typedef_of_maybe_qualified_class_or_union_type(t.get());}
+
 /// Test whether a type is a reference_type_def.
 ///
 /// @param t the type to test.
@@ -11259,6 +11357,42 @@  is_reference_type(const type_or_decl_base_sptr& t,
   return dynamic_pointer_cast<reference_type_def>(type);
 }
 
+/// Test whether a type is a @ref ptr_to_mbr_type.
+///
+/// @param t the type to test.
+///
+/// @return the @ref ptr_to_mbr_type* if @p t is a @ref
+/// ptr_to_mbr_type type, null otherwise.
+const ptr_to_mbr_type*
+is_ptr_to_mbr_type(const type_or_decl_base* t,
+		   bool look_through_qualifiers)
+{
+  const type_base* type = is_type(t);
+  if (look_through_qualifiers)
+    type = peel_qualified_type(type);
+  return dynamic_cast<const ptr_to_mbr_type*>(type);
+}
+
+/// Test whether a type is a @ref ptr_to_mbr_type_sptr.
+///
+/// @param t the type to test.
+///
+/// @param look_through_decl_only if this is true, then look through
+/// qualified types to see if the underlying type is a
+/// ptr_to_mbr_type..
+///
+/// @return the @ref ptr_to_mbr_type_sptr if @p t is a @ref
+/// ptr_to_mbr_type type, null otherwise.
+ptr_to_mbr_type_sptr
+is_ptr_to_mbr_type(const type_or_decl_base_sptr& t,
+		   bool look_through_qualifiers)
+{
+  type_base_sptr type = is_type(t);
+  if (look_through_qualifiers)
+    type = peel_qualified_type(type);
+  return dynamic_pointer_cast<ptr_to_mbr_type>(type);
+}
+
 /// Test if a type is equivalent to a pointer to void type.
 ///
 /// Note that this looks trough typedefs or CV qualifiers to look for
@@ -14518,6 +14652,39 @@  maybe_update_types_lookup_map(const pointer_type_def_sptr& pointer_type)
     }
 }
 
+/// Update the map that associates the fully qualified name of a
+/// pointer-to-member type with the type itself.
+///
+/// The per-translation unit type map is updated if no type with this
+/// name was already existing in that map.
+///
+/// If no type with this name did already exist in the per-corpus type
+/// map, then that per-corpus type map is updated. Otherwise, that
+/// type is erased from that per-corpus map.
+///
+/// @param ptr_to_mbr_type the type to consider.
+void
+maybe_update_types_lookup_map(const ptr_to_mbr_type_sptr& ptr_to_member)
+{
+  if (translation_unit *tu = ptr_to_member->get_translation_unit())
+    maybe_update_types_lookup_map<ptr_to_mbr_type>
+      (ptr_to_member, tu->get_types().ptr_to_mbr_types());
+
+  if (corpus *type_corpus = ptr_to_member->get_corpus())
+    {
+      maybe_update_types_lookup_map<ptr_to_mbr_type>
+	(ptr_to_member,
+	 type_corpus->priv_->get_types().ptr_to_mbr_types());
+
+      if (corpus *group = type_corpus->get_group())
+	{
+	  maybe_update_types_lookup_map<ptr_to_mbr_type>
+	    (ptr_to_member,
+	     group->priv_->get_types().ptr_to_mbr_types());
+	}
+    }
+}
+
 /// Update the map that associates the fully qualified name of a
 /// reference type with the type itself.
 ///
@@ -14703,6 +14870,8 @@  maybe_update_types_lookup_map(const decl_base_sptr& decl)
     maybe_update_types_lookup_map(qualified_type);
   else if (pointer_type_def_sptr pointer_type = is_pointer_type(decl))
     maybe_update_types_lookup_map(pointer_type);
+  else if (ptr_to_mbr_type_sptr ptr_to_member = is_ptr_to_mbr_type(decl))
+    maybe_update_types_lookup_map(ptr_to_member);
   else if (reference_type_def_sptr reference_type = is_reference_type(decl))
     maybe_update_types_lookup_map(reference_type);
   else if (array_type_def_sptr array_type = is_array_type(decl))
@@ -18111,6 +18280,280 @@  operator!=(const reference_type_def_sptr& l, const reference_type_def_sptr& r)
 
 // </reference_type_def definitions>
 
+// <ptr_to_mbr_type definitions>
+
+/// The private data type of @ref ptr_to_mbr_type.
+struct ptr_to_mbr_type::priv
+{
+  // The type of the data member this pointer-to-member-type
+  // designates.
+  type_base_sptr dm_type_;
+  // The class (or typedef to potentially qualified class) containing
+  // the data member this pointer-to-member-type designates.
+  type_base_sptr containing_type_;
+  interned_string internal_qualified_name_;
+  interned_string temp_internal_qualified_name_;
+
+  priv()
+  {}
+
+  priv(const type_base_sptr& dm_type, const type_base_sptr& containing_type)
+    :  dm_type_(dm_type),
+       containing_type_(containing_type)
+  {}
+};// end struct ptr_to_mbr_type::priv
+
+/// A constructor for a @ref ptr_to_mbr_type type.
+///
+/// @param env the environment to construct the @ref ptr_to_mbr_type in.
+///
+/// @param member_type the member type of the of the @ref
+/// ptr_to_mbr_type to construct.
+///
+/// @param containing_type the containing type of the @ref
+/// ptr_to_mbr_type to construct.
+///
+/// @param size_in_bits the size (in bits) of the resulting type.
+///
+/// @param alignment_in_bits the alignment (in bits) of the resulting
+/// type.
+///
+/// @param locus the source location of the definition of the
+/// resulting type.
+ptr_to_mbr_type::ptr_to_mbr_type(const environment&		env,
+				 const type_base_sptr&		member_type,
+				 const type_base_sptr&		containing_type,
+				 size_t			size_in_bits,
+				 size_t			alignment_in_bits,
+				 const location&		locus)
+  : type_or_decl_base(env,
+		      POINTER_TO_MEMBER_TYPE
+		      | ABSTRACT_TYPE_BASE
+		      | ABSTRACT_DECL_BASE),
+    type_base(env, size_in_bits, alignment_in_bits),
+    decl_base(env, "", locus, ""),
+    priv_(new priv(member_type, containing_type))
+{
+  runtime_type_instance(this);
+  ABG_ASSERT(member_type);
+  ABG_ASSERT(containing_type);
+  interned_string name = ptr_to_mbr_declaration_name(this, "",
+						     /*qualified=*/true,
+						     /*internal=*/false);
+  set_name(name);
+}
+
+/// Getter of the member type of the current @ref ptr_to_mbr_type.
+///
+/// @return the type of the member referred to by the current
+/// @ptr_to_mbr_type.
+const type_base_sptr&
+ptr_to_mbr_type::get_member_type() const
+{return priv_->dm_type_;}
+
+/// Getter of the type containing the member pointed-to by the current
+/// @ref ptr_to_mbr_type.
+///
+/// @return the type containing the member pointed-to by the current
+/// @ref ptr_to_mbr_type.
+const type_base_sptr&
+ptr_to_mbr_type::get_containing_type() const
+{return priv_->containing_type_;}
+
+/// Equality operator for the current @ref ptr_to_mbr_type.
+///
+///@param o the other instance of @ref ptr_to_mbr_type to compare the
+///current instance to.
+///
+/// @return true iff the current @ref ptr_to_mbr_type equals @p o.
+bool
+ptr_to_mbr_type::operator==(const decl_base& o) const
+{
+  const ptr_to_mbr_type* other =
+    dynamic_cast<const ptr_to_mbr_type*>(&o);
+  if (!other)
+    return false;
+  return try_canonical_compare(this, other);
+}
+
+/// Equality operator for the current @ref ptr_to_mbr_type.
+///
+///@param o the other instance of @ref ptr_to_mbr_type to compare the
+///current instance to.
+///
+/// @return true iff the current @ref ptr_to_mbr_type equals @p o.
+bool
+ptr_to_mbr_type::operator==(const type_base& o) const
+{
+  const decl_base* other = dynamic_cast<const decl_base*>(&o);
+  if (!other)
+    return false;
+  return *this == *other;
+}
+
+/// Equality operator for the current @ref ptr_to_mbr_type.
+///
+///@param o the other instance of @ref ptr_to_mbr_type to compare the
+///current instance to.
+///
+/// @return true iff the current @ref ptr_to_mbr_type equals @p o.
+bool
+ptr_to_mbr_type::operator==(const ptr_to_mbr_type& o) const
+{
+  const decl_base* other = dynamic_cast<const decl_base*>(&o);
+  if (!other)
+    return false;
+  return *this == *other;
+}
+
+/// Get the qualified name for the current @ref ptr_to_mbr_type.
+///
+/// @param qualified_name out parameter.  This is set to the name of
+/// the current @ref ptr_to_mbr_type.
+///
+/// @param internal if this is true, then the qualified name is for
+/// the purpose of type canoicalization.
+void
+ptr_to_mbr_type::get_qualified_name(interned_string& qualified_name,
+				    bool internal) const
+{qualified_name = get_qualified_name(internal);}
+
+/// Get the qualified name for the current @ref ptr_to_mbr_type.
+///
+/// @param internal if this is true, then the qualified name is for
+/// the purpose of type canoicalization.
+///
+/// @return the qualified name for the current @ref ptr_to_mbr_type.
+const interned_string&
+ptr_to_mbr_type::get_qualified_name(bool internal) const
+{
+  type_base_sptr member_type = get_member_type();
+  type_base_sptr containing_type = get_containing_type();
+
+  if (internal)
+    {
+      if (get_canonical_type())
+	{
+	  if (priv_->internal_qualified_name_.empty())
+	    priv_->internal_qualified_name_ =
+	      ptr_to_mbr_declaration_name(this, "",
+					  /*qualified=*/true,
+					  internal);
+	  return  priv_->internal_qualified_name_;
+	}
+      else
+	{
+	  priv_->temp_internal_qualified_name_ =
+	    ptr_to_mbr_declaration_name(this, "", /*qualified=*/true, internal);
+	  return priv_->temp_internal_qualified_name_;
+	}
+    }
+  else
+    {
+      set_qualified_name
+	(ptr_to_mbr_declaration_name(this, "", /*qualified=*/true,
+				     /*internal=*/false));
+      return decl_base::peek_qualified_name();
+    }
+}
+
+/// This implements the ir_traversable_base::traverse pure virtual
+/// function for @ref ptr_to_mbr_type.
+///
+/// @param v the visitor used on the current instance.
+///
+/// @return true if the entire IR node tree got traversed, false
+/// otherwise.
+bool
+ptr_to_mbr_type::traverse(ir_node_visitor& v)
+{
+  if (v.type_node_has_been_visited(this))
+    return true;
+
+  if (visiting())
+    return true;
+
+  if (v.visit_begin(this))
+    {
+      visiting(true);
+      if (type_base_sptr t = get_member_type())
+	t->traverse(v);
+
+      if (type_base_sptr t = get_containing_type())
+	t->traverse(v);
+      visiting(false);
+    }
+
+  bool result = v.visit_end(this);
+  v.mark_type_node_as_visited(this);
+  return result;
+}
+
+/// Desctructor for @ref ptr_to_mbr_type.
+ptr_to_mbr_type::~ptr_to_mbr_type()
+{}
+
+
+/// Compares two instances of @ref ptr_to_mbr_type.
+///
+/// If the two intances are different, set a bitfield to give some
+/// insight about the kind of differences there are.
+///
+/// @param l the first artifact of the comparison.
+///
+/// @param r the second artifact of the comparison.
+///
+/// @param k a pointer to a bitfield that gives information about the
+/// kind of changes there are between @p l and @p r.  This one is set
+/// iff @p k is non-null and the function returns false.
+///
+/// Please note that setting k to a non-null value does have a
+/// negative performance impact because even if @p l and @p r are not
+/// equal, the function keeps up the comparison in order to determine
+/// the different kinds of ways in which they are different.
+///
+/// @return true if @p l equals @p r, false otherwise.
+bool
+equals(const ptr_to_mbr_type& l, const ptr_to_mbr_type& r, change_kind* k)
+{
+  bool result = true;
+
+  if (!(l.decl_base::operator==(r)))
+    {
+      result = false;
+      if (k)
+	*k |= LOCAL_TYPE_CHANGE_KIND;
+      else
+	result = false;
+    }
+
+  if (l.get_member_type() != r.get_member_type())
+    {
+      if (k)
+	{
+	  if (!types_have_similar_structure(&l, &r))
+	    *k |= LOCAL_TYPE_CHANGE_KIND;
+	  *k |= SUBTYPE_CHANGE_KIND;
+	}
+      result = false;
+    }
+
+  if (l.get_containing_type() != r.get_containing_type())
+    {
+      if (k)
+	{
+	  if (!types_have_similar_structure(&l, &r))
+	    *k |= LOCAL_TYPE_CHANGE_KIND;
+	  *k |= SUBTYPE_CHANGE_KIND;
+	}
+      result = false;
+    }
+
+  ABG_RETURN(result);
+}
+
+// </ptr_to_mbr_type definitions>
+
 // <array_type_def definitions>
 
 // <array_type_def::subrange_type>
@@ -20532,7 +20975,8 @@  var_decl::get_pretty_representation(bool internal, bool qualified_name) const
   type_base_sptr type = get_type();
   if (is_array_type(type, /*look_through_qualifiers=*/true)
       || is_pointer_type(type, /*look_through_qualifiers=*/true)
-      || is_reference_type(type, /*look_through_qualifiers=*/true))
+      || is_reference_type(type, /*look_through_qualifiers=*/true)
+      || is_ptr_to_mbr_type(type, /*look_through_qualifiers=*/true))
     {
       string name;
       if (member_of_anonymous_class || !qualified_name)
@@ -20556,6 +21000,10 @@  var_decl::get_pretty_representation(bool internal, bool qualified_name) const
 	result += pointer_declaration_name(t, name, qualified_name, internal);
       else if (reference_type_def_sptr t = is_reference_type(type))
 	result += pointer_declaration_name(t, name, qualified_name, internal);
+      else if (ptr_to_mbr_type_sptr t = is_ptr_to_mbr_type(type))
+	result += ptr_to_mbr_declaration_name(t, name,
+					      qualified_name,
+					      internal);
     }
   else
     {
@@ -27609,6 +28057,18 @@  types_have_similar_structure(const type_base* first,
 					  /*indirect_type=*/true);
     }
 
+  // Peel off matching pointer-to-member types.
+  if (const ptr_to_mbr_type* ty1 = is_ptr_to_mbr_type(first))
+    {
+      const ptr_to_mbr_type* ty2 = is_ptr_to_mbr_type(second);
+      return (types_have_similar_structure(ty1->get_member_type(),
+					   ty2->get_member_type(),
+					   /*indirect_type=*/true)
+	      && types_have_similar_structure(ty1->get_containing_type(),
+					      ty2->get_containing_type(),
+					      /*indirect_type=*/true));
+    }
+
   if (const type_decl* ty1 = is_type_decl(first))
     {
       const type_decl* ty2 = is_type_decl(second);
@@ -28251,6 +28711,218 @@  add_outer_pointer_to_array_type_expr(const type_base_sptr& pointer_to_ar,
 {return add_outer_pointer_to_array_type_expr(pointer_to_ar.get(),
 					     input, qualified, internal);}
 
+/// When constructing the name of a pointer to mebmer type, add the
+/// return type to the left of the existing type identifier, and the
+/// parameters declarator to the right.
+///
+/// This function considers the name of the type as an expression.
+///
+/// The resulting type expr is going to be made of three parts:
+/// left_expr inner_expr right_expr.
+///
+/// Suppose we want to build the type expression representing:
+///
+///   "an array of pointer to member function (of a containing struct
+///    X) taking a char parameter and returning an int".
+///
+/// It's going to look like:
+///
+///   int (X::* a[])(char);
+///
+/// Suppose the caller of this function started to emit the inner
+/// "a[]" part of the expression already.  It thus calls this
+/// function with that input "a[]" part.  We consider that "a[]" as
+/// the "type identifier".
+///
+/// So the inner_expr is going to be "(X::* a[])".
+///
+/// The left_expr part is "int".  The right_expr part is "(char)".
+///
+/// In other words, this function adds the left_expr and right_expr to
+/// the inner_expr.  left_expr and right_expr are called "outer
+/// pointer to member type expression".
+///
+/// This is a sub-routine of @ref ptr_to_mbr_declaration_name().
+///
+/// @param p the pointer to member type to consider.
+///
+/// @param input the type-id to use as the inner expression of the
+/// overall pointer-to-member type expression
+///
+/// @param qualified if true then use qualified names in the resulting
+/// type name.
+///
+/// @param internal if true then the resulting type name is going to
+/// be used for type canonicalization purposes.
+///
+/// @return the name of the pointer to member type.
+static string
+add_outer_ptr_to_mbr_type_expr(const ptr_to_mbr_type* p,
+			       const  string& input, bool qualified,
+			       bool internal)
+{
+  if (!p)
+    return "";
+
+  std::ostringstream left, right, inner;
+  string containing_type_name = get_type_name(p->get_containing_type(),
+					      qualified, internal);
+  type_base_sptr mbr_type = p->get_member_type();
+  string result;
+  if (function_type_sptr fn_type = is_function_type(mbr_type))
+    {
+      inner << "(" << containing_type_name << "::*" << input << ")";
+      stream_pretty_representation_of_fn_parms(*fn_type, right,
+					       qualified, internal);
+      type_base_sptr return_type = fn_type->get_return_type();
+      if (is_npaf_type(return_type)
+	  || !(is_pointer_to_function_type(return_type)
+	       || is_pointer_to_array_type(return_type)
+	       || is_pointer_to_ptr_to_mbr_type(return_type)
+	       || is_ptr_to_mbr_type(return_type)))
+	{
+	  left << get_type_name(return_type, qualified, internal) << " ";;
+	  result = left.str() + inner.str() + right.str();
+	}
+      else if (pointer_type_def_sptr p = is_pointer_type(return_type))
+	{
+	  string inner_str = inner.str() + right.str();
+	  result = pointer_declaration_name(p, inner_str, qualified, internal);
+	}
+      else if (ptr_to_mbr_type_sptr p = is_ptr_to_mbr_type(return_type))
+	{
+	  string inner_str = inner.str() + right.str();
+	  result = add_outer_ptr_to_mbr_type_expr(p, inner_str,
+						  qualified, internal);
+	}
+      else
+	ABG_ASSERT_NOT_REACHED;
+    }
+  else if (ptr_to_mbr_type_sptr ptr_mbr_type = is_ptr_to_mbr_type(mbr_type))
+    {
+      inner << "(" << containing_type_name << "::*" << input << ")";
+      stream_pretty_representation_of_fn_parms(*fn_type, right,
+					       qualified, internal);
+      string inner_str = inner.str() + right.str();
+      result = add_outer_ptr_to_mbr_type_expr(ptr_mbr_type, inner_str,
+					      qualified, internal);
+    }
+  else
+    {
+      left << get_type_name(p->get_member_type(), qualified, internal) << " ";
+      inner << containing_type_name << "::*" << input;
+      result = left.str()+ inner.str();
+    }
+
+  return result;
+}
+
+/// When constructing the name of a pointer to mebmer type, add the
+/// return type to the left of the existing type identifier, and the
+/// parameters declarator to the right.
+///
+/// This function considers the name of the type as an expression.
+///
+/// The resulting type expr is going to be made of three parts:
+/// left_expr inner_expr right_expr.
+///
+/// Suppose we want to build the type expression representing:
+///
+///   "an array of pointer to member function (of a containing struct
+///    X) taking a char parameter and returning an int".
+///
+/// It's going to look like:
+///
+///   int (X::* a[])(char);
+///
+/// Suppose the caller of this function started to emit the inner
+/// "a[]" part of the expression already.  It thus calls this
+/// function with that input "a[]" part.  We consider that "a[]" as
+/// the "type identifier".
+///
+/// So the inner_expr is going to be "(X::* a[])".
+///
+/// The left_expr part is "int".  The right_expr part is "(char)".
+///
+/// In other words, this function adds the left_expr and right_expr to
+/// the inner_expr.  left_expr and right_expr are called "outer
+/// pointer to member type expression".
+///
+/// This is a sub-routine of @ref ptr_to_mbr_declaration_name().
+///
+/// @param p the pointer to member type to consider.
+///
+/// @param input the type-id to use as the inner expression of the
+/// overall pointer-to-member type expression
+///
+/// @param qualified if true then use qualified names in the resulting
+/// type name.
+///
+/// @param internal if true then the resulting type name is going to
+/// be used for type canonicalization purposes.
+///
+/// @return the name of the pointer to member type.
+static string
+add_outer_ptr_to_mbr_type_expr(const ptr_to_mbr_type_sptr& p,
+			       const string& input, bool qualified,
+			       bool internal)
+{return add_outer_ptr_to_mbr_type_expr(p.get(), input, qualified, internal);}
+
+/// This adds the outer parts of a pointer to a pointer-to-member
+/// expression.
+///
+/// Please read the comments of @ref add_outer_ptr_to_mbr_type_expr to
+/// learn more about this function, which is similar.
+///
+/// This is a sub-routine of @ref pointer_declaration_name().
+///
+/// @param a pointer (or reference) to a pointer-to-member type.
+///
+/// @param input the inner type-id to add the outer parts to.
+///
+/// @param qualified if true then use qualified names in the resulting
+/// type name.
+///
+/// @param internal if true then the resulting type name is going to
+/// be used for type canonicalization purposes.
+static string
+add_outer_pointer_to_ptr_to_mbr_type_expr(const type_base* p,
+					  const string& input, bool qualified,
+					  bool internal)
+{
+  if (!p)
+    return "";
+
+  string star_or_ref;
+  type_base_sptr pointed_to_type;
+
+  if (const pointer_type_def* ptr = is_pointer_type(p))
+    {
+      pointed_to_type = ptr->get_pointed_to_type();
+      star_or_ref = "*";
+    }
+  else if (const reference_type_def* ref = is_reference_type(p))
+    {
+      pointed_to_type= ref->get_pointed_to_type();
+      star_or_ref = "&";
+    }
+
+  if (!pointed_to_type)
+    return "";
+
+  ptr_to_mbr_type_sptr pointed_to_ptr_to_mbr =
+    is_ptr_to_mbr_type(pointed_to_type);
+  if (!pointed_to_ptr_to_mbr)
+    return "";
+
+  std::ostringstream inner;
+  inner << star_or_ref << input;
+  string result = add_outer_ptr_to_mbr_type_expr(pointed_to_ptr_to_mbr,
+						 inner.str(),
+						 qualified, internal);
+  return result;
+}
+
 /// Emit the name of a pointer declaration.
 ///
 /// @param the pointer to consider.
@@ -28291,7 +28963,8 @@  pointer_declaration_name(const type_base* ptr,
   string result;
   if (is_npaf_type(pointed_to_type)
       || !(is_function_type(pointed_to_type)
-	   || is_array_type(pointed_to_type)))
+	   || is_array_type(pointed_to_type)
+	   || is_ptr_to_mbr_type(pointed_to_type)))
     {
       result = get_type_name(pointed_to_type,
 			     qualified,
@@ -28310,6 +28983,9 @@  pointer_declaration_name(const type_base* ptr,
       else if (is_array_type(pointed_to_type))
 	result = add_outer_pointer_to_array_type_expr(ptr, idname,
 						      qualified, internal);
+      else if (is_ptr_to_mbr_type(pointed_to_type))
+	result = add_outer_pointer_to_ptr_to_mbr_type_expr(ptr, idname,
+							   qualified, internal);
       else
 	ABG_ASSERT_NOT_REACHED;
     }
@@ -28379,7 +29055,9 @@  array_declaration_name(const array_type_def* array,
     {
       if (is_npaf_type(e_type)
 	  || !(is_pointer_to_function_type(e_type)
-	       || is_pointer_to_array_type(e_type)))
+	       || is_pointer_to_array_type(e_type)
+	       || is_pointer_to_ptr_to_mbr_type(e_type)
+	       || is_ptr_to_mbr_type(e_type)))
 	{
 	  result = e_type_repr;
 	  if (!variable_name.empty())
@@ -28391,6 +29069,11 @@  array_declaration_name(const array_type_def* array,
 	  string s = variable_name + array->get_subrange_representation();
 	  result = pointer_declaration_name(p, s, qualified, internal);
 	}
+      else if (ptr_to_mbr_type_sptr p = is_ptr_to_mbr_type(e_type))
+	{
+	  string s = variable_name + array->get_subrange_representation();
+	  result = ptr_to_mbr_declaration_name(p, s, qualified, internal);
+	}
       else
 	ABG_ASSERT_NOT_REACHED;
     }
@@ -28416,6 +29099,56 @@  array_declaration_name(const array_type_def_sptr& array,
 		       bool qualified, bool internal)
 {return array_declaration_name(array.get(), variable_name,
 			       qualified, internal);}
+
+/// Emit the name of a pointer-to-member declaration.
+///
+/// @param ptr the pointer-to-member to consider.
+///
+/// @param variable_name the name of the variable that has @p as a
+/// type.  If it's empty then the resulting name is going to be the
+/// abstract name of the type.
+///
+/// @param qualified if true then the type name is going to be
+/// fully qualified.
+///
+/// @param internal if true then the type name is going to be used for
+/// type canonicalization purposes.
+static interned_string
+ptr_to_mbr_declaration_name(const ptr_to_mbr_type* ptr,
+			    const string& variable_name,
+			    bool qualified, bool internal)
+{
+  if (!ptr)
+    return interned_string();
+
+  string input = variable_name;
+  string result = add_outer_ptr_to_mbr_type_expr(ptr, input,
+						 qualified, internal);
+  return ptr->get_environment().intern(result);
+}
+
+/// Emit the name of a pointer-to-member declaration.
+///
+/// @param ptr the pointer-to-member to consider.
+///
+/// @param variable_name the name of the variable that has @p as a
+/// type.  If it's empty then the resulting name is going to be the
+/// abstract name of the type.
+///
+/// @param qualified if true then the type name is going to be
+/// fully qualified.
+///
+/// @param internal if true then the type name is going to be used for
+/// type canonicalization purposes.
+static interned_string
+ptr_to_mbr_declaration_name(const ptr_to_mbr_type_sptr& ptr,
+			    const string& variable_name,
+			    bool qualified, bool internal)
+{
+  return ptr_to_mbr_declaration_name(ptr.get(), variable_name,
+				     qualified, internal);
+}
+
 bool
 ir_traversable_base::traverse(ir_node_visitor&)
 {return true;}
@@ -28590,6 +29323,14 @@  bool
 ir_node_visitor::visit_end(reference_type_def* t)
 {return visit_end(static_cast<type_base*>(t));}
 
+bool
+ir_node_visitor::visit_begin(ptr_to_mbr_type* t)
+{return visit_begin(static_cast<type_base*>(t));}
+
+bool
+ir_node_visitor::visit_end(ptr_to_mbr_type* t)
+{return visit_end(static_cast<type_base*>(t));}
+
 bool
 ir_node_visitor::visit_begin(array_type_def* t)
 {return visit_begin(static_cast<type_base*>(t));}
diff --git a/src/abg-leaf-reporter.cc b/src/abg-leaf-reporter.cc
index 10d65054..7b7111db 100644
--- a/src/abg-leaf-reporter.cc
+++ b/src/abg-leaf-reporter.cc
@@ -256,6 +256,21 @@  leaf_reporter::report(const reference_diff& d,
   report_local_reference_type_changes(d, out, indent);
 }
 
+/// Report the changes carried by a @ref ptr_to_mbr_diff node.
+///
+/// @param out the output stream to report to.
+///
+/// @param indent the white space string to use for indentation.
+void
+leaf_reporter::report(const ptr_to_mbr_diff& d, std::ostream& out,
+		      const std::string& indent) const
+{
+  if (!diff_to_be_reported(&d))
+    return;
+
+  report_local_ptr_to_mbr_type_changes(d, out, indent);
+}
+
 /// Report the changes carried by a @ref fn_parm_diff node.
 ///
 /// @param out the output stream to report to.
diff --git a/src/abg-reader.cc b/src/abg-reader.cc
index e71337f7..c6e0fa32 100644
--- a/src/abg-reader.cc
+++ b/src/abg-reader.cc
@@ -1429,6 +1429,9 @@  build_pointer_type_def(reader&, const xmlNodePtr, bool);
 static shared_ptr<reference_type_def>
 build_reference_type_def(reader&, const xmlNodePtr, bool);
 
+static ptr_to_mbr_type_sptr
+build_ptr_to_mbr_type(reader&, const xmlNodePtr, bool);
+
 static shared_ptr<function_type>
 build_function_type(reader&, const xmlNodePtr, bool);
 
@@ -4184,6 +4187,87 @@  build_reference_type_def(reader&		rdr,
   return t;
 }
 
+/// Build a @ref ptr_to_mbr_type from a pointer to
+/// 'pointer-to-member-type' xml node.
+///
+/// @param rdr the reader used for parsing.
+///
+/// @param node the xml node to build the reference_type_def from.
+///
+/// @param add_to_current_scope if set to yes, the resulting of
+/// this function is added to its current scope.
+///
+/// @return a pointer to a newly built @ref ptr_to_mbr_type upon
+/// successful completio, a null pointer otherwise.
+static ptr_to_mbr_type_sptr
+build_ptr_to_mbr_type(reader&		rdr,
+		      const xmlNodePtr	node,
+		      bool		add_to_current_scope)
+{
+  ptr_to_mbr_type_sptr result, nil;
+
+  if (!xmlStrEqual(node->name, BAD_CAST("pointer-to-member-type")))
+    return nil;
+
+  if (decl_base_sptr d = rdr.get_decl_for_xml_node(node))
+    {
+      result = is_ptr_to_mbr_type(d);
+      ABG_ASSERT(result);
+      return result;
+    }
+
+  string id;
+  if (xml_char_sptr s = XML_NODE_GET_ATTRIBUTE(node, "id"))
+    id = CHAR_STR(s);
+
+  if (id.empty())
+    return nil;
+
+  if (type_base_sptr d = rdr.get_type_decl(id))
+    {
+      result = is_ptr_to_mbr_type(d);
+      ABG_ASSERT(result);
+      return result;
+    }
+
+  size_t size_in_bits = rdr.get_translation_unit()->get_address_size();
+  size_t alignment_in_bits = 0;
+  read_size_and_alignment(node, size_in_bits, alignment_in_bits);
+
+  location loc;
+  read_location(rdr, node, loc);
+
+  string member_type_id;
+  if (xml_char_sptr s = XML_NODE_GET_ATTRIBUTE(node, "member-type-id"))
+    member_type_id = CHAR_STR(s);
+  if (member_type_id.empty())
+    return nil;
+  type_base_sptr member_type =
+    is_type(rdr.build_or_get_type_decl(member_type_id, true));
+  if (!member_type)
+    return nil;
+
+  string containing_type_id;
+  if (xml_char_sptr s = XML_NODE_GET_ATTRIBUTE(node, "containing-type-id"))
+    containing_type_id = CHAR_STR(s);
+  if (containing_type_id.empty())
+    return nil;
+  type_base_sptr containing_type =
+    rdr.build_or_get_type_decl(containing_type_id, true);
+  if (!is_typedef_of_maybe_qualified_class_or_union_type(containing_type))
+    return nil;
+
+  result.reset(new ptr_to_mbr_type(rdr.get_environment(),
+				   member_type, containing_type,
+				   size_in_bits, alignment_in_bits,
+				   loc));
+
+  if (rdr.push_and_key_type_decl(result, node, add_to_current_scope))
+    rdr.map_xml_node_to_decl(node, result);
+
+  return result;
+}
+
 /// Build a function_type from a pointer to 'function-type'
 /// xml node.
 ///
@@ -6001,6 +6085,7 @@  build_type(reader&	rdr,
    || (t = build_qualified_type_decl(rdr, node, add_to_current_scope))
    || (t = build_pointer_type_def(rdr, node, add_to_current_scope))
    || (t = build_reference_type_def(rdr, node , add_to_current_scope))
+   || (t = build_ptr_to_mbr_type(rdr, node , add_to_current_scope))
    || (t = build_function_type(rdr, node, add_to_current_scope))
    || (t = build_array_type_def(rdr, node, add_to_current_scope))
    || (t = build_subrange_type(rdr, node, add_to_current_scope))
diff --git a/src/abg-writer.cc b/src/abg-writer.cc
index 850c8759..0f2d2bdf 100644
--- a/src/abg-writer.cc
+++ b/src/abg-writer.cc
@@ -919,6 +919,8 @@  static bool write_pointer_type_def(const pointer_type_def_sptr&,
 				   write_context&, unsigned);
 static bool write_reference_type_def(const reference_type_def_sptr&,
 				     write_context&, unsigned);
+static bool write_ptr_to_mbr_type(const ptr_to_mbr_type_sptr&,
+				  write_context&, unsigned);
 static bool write_array_type_def(const array_type_def_sptr&,
 			         write_context&, unsigned);
 static bool write_array_subrange_type(const array_type_def::subrange_sptr&,
@@ -1928,6 +1930,9 @@  write_type(const type_base_sptr& type, write_context& ctxt, unsigned indent)
 				ctxt, indent)
       || write_reference_type_def(dynamic_pointer_cast
 				  <reference_type_def>(type), ctxt, indent)
+      || write_ptr_to_mbr_type(dynamic_pointer_cast
+			       <ptr_to_mbr_type>(type),
+			       ctxt, indent)
       || write_array_type_def(dynamic_pointer_cast
 			      <array_type_def>(type), ctxt, indent)
       || write_enum_type_decl(dynamic_pointer_cast<enum_type_decl>(type),
@@ -1970,6 +1975,9 @@  write_decl(const decl_base_sptr& decl, write_context& ctxt, unsigned indent)
 				ctxt, indent)
       || write_reference_type_def(dynamic_pointer_cast
 				  <reference_type_def>(decl), ctxt, indent)
+      || write_ptr_to_mbr_type(dynamic_pointer_cast
+			       <ptr_to_mbr_type>(decl),
+			       ctxt, indent)
       || write_array_type_def(dynamic_pointer_cast
 			      <array_type_def>(decl), ctxt, indent)
       || write_array_subrange_type(dynamic_pointer_cast
@@ -2874,6 +2882,78 @@  write_reference_type_def(const reference_type_def_sptr&	decl,
 			 unsigned				indent)
 {return write_reference_type_def(decl, "", ctxt, indent);}
 
+/// Serialize a pointer to an instance of @ref ptr_to_mbr_type.
+///
+/// @param decl a pointer to the @ref ptr_to_mbr_type to serialize.
+///
+/// @param id the ID of the type.  If it's an empty string then a new
+/// ID is generated.
+///
+/// @param ctxt the context of the serialization.
+///
+/// @param indent the number of indentation white spaces to use.
+///
+/// @return true upon succesful completion, false otherwise.
+static bool
+write_ptr_to_mbr_type(const ptr_to_mbr_type_sptr& decl,
+		      const string& id, write_context& ctxt,
+		      unsigned indent)
+{
+  if (!decl)
+    return false;
+
+  annotate(decl->get_canonical_type(), ctxt, indent);
+
+  ostream& o = ctxt.get_ostream();
+
+  do_indent(o, indent);
+
+  o << "<pointer-to-member-type";
+
+  write_size_and_alignment(decl, o,
+			   (ctxt.get_write_default_sizes()
+			    ? 0
+			    : decl->get_translation_unit()->get_address_size()),
+			   0);
+
+  write_location(static_pointer_cast<decl_base>(decl), ctxt);
+
+  type_base_sptr member_type = decl->get_member_type();
+  string i = ctxt.get_id_for_type(member_type);
+  o << " member-type-id='" << i << "'";
+  ctxt.record_type_as_referenced(member_type);
+
+  type_base_sptr containing_type = decl->get_containing_type();
+  i = ctxt.get_id_for_type(containing_type);
+  o << " containing-type-id='" << i << "'";
+  ctxt.record_type_as_referenced(containing_type);
+
+  i = id;
+  if (i.empty())
+    i = ctxt.get_id_for_type(decl);
+  o << " id ='" << i << "'";
+
+  o << "/>\n";
+
+  ctxt.record_type_as_emitted(decl);
+
+  return true;
+}
+
+/// Serialize a pointer to an instance of @ref ptr_to_mbr_type.
+///
+/// @param decl a pointer to the @ref ptr_to_mbr_type to serialize.
+///
+/// @param ctxt the context of the serialization.
+///
+/// @param indent the number of indentation white spaces to use.
+///
+/// @return true upon succesful completion, false otherwise.
+static bool
+write_ptr_to_mbr_type(const ptr_to_mbr_type_sptr& decl,
+		      write_context& ctxt, unsigned indent)
+{return write_ptr_to_mbr_type(decl, "", ctxt, indent);}
+
 /// Serialize an instance of @ref array_type_def::subrange_type.
 ///
 /// @param decl the array_type_def::subrange_type to serialize.
@@ -4179,21 +4259,23 @@  write_member_type(const type_base_sptr& t, write_context& ctxt, unsigned indent)
 
   unsigned nb_ws = get_indent_to_level(ctxt, indent, 1);
   ABG_ASSERT(write_qualified_type_def(dynamic_pointer_cast<qualified_type_def>(t),
-				  id, ctxt, nb_ws)
-	 || write_pointer_type_def(dynamic_pointer_cast<pointer_type_def>(t),
+				      id, ctxt, nb_ws)
+	     || write_pointer_type_def(dynamic_pointer_cast<pointer_type_def>(t),
 				   id, ctxt, nb_ws)
-	 || write_reference_type_def(dynamic_pointer_cast<reference_type_def>(t),
+	     || write_reference_type_def(dynamic_pointer_cast<reference_type_def>(t),
+					 id, ctxt, nb_ws)
+	     || write_ptr_to_mbr_type(dynamic_pointer_cast<ptr_to_mbr_type>(t),
+				      id, ctxt, nb_ws)
+	     || write_array_type_def(dynamic_pointer_cast<array_type_def>(t),
+				     id, ctxt, nb_ws)
+	     || write_enum_type_decl(dynamic_pointer_cast<enum_type_decl>(t),
 				     id, ctxt, nb_ws)
-	 || write_array_type_def(dynamic_pointer_cast<array_type_def>(t),
-			         id, ctxt, nb_ws)
-	 || write_enum_type_decl(dynamic_pointer_cast<enum_type_decl>(t),
+	     || write_typedef_decl(dynamic_pointer_cast<typedef_decl>(t),
+				   id, ctxt, nb_ws)
+	     || write_union_decl(dynamic_pointer_cast<union_decl>(t),
 				 id, ctxt, nb_ws)
-	 || write_typedef_decl(dynamic_pointer_cast<typedef_decl>(t),
-			       id, ctxt, nb_ws)
-	 || write_union_decl(dynamic_pointer_cast<union_decl>(t),
-			     id, ctxt, nb_ws)
-	 || write_class_decl(dynamic_pointer_cast<class_decl>(t),
-			     id, ctxt, nb_ws));
+	     || write_class_decl(dynamic_pointer_cast<class_decl>(t),
+				 id, ctxt, nb_ws));
 
   do_indent_to_level(ctxt, indent, 0);
   o << "</member-type>\n";
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index 8af6a2c4..231aaa6b 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -389,6 +389,31 @@  test-abidiff-exit/PR31045/zfs-abigail-2.4/libnvpair.abi \
 test-abidiff-exit/PR31045/zfs-abigail-2.4/libnvpair.so \
 test-abidiff-exit/PR31045/zfs-abigail-2.4/libnvpair.suppr \
 test-abidiff-exit/PR31045/zfs-abigail-2.4/test-PR31045-report-1.txt \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-output-1.txt \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.o \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc \
+test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.o \
 \
 test-diff-dwarf/test0-v0.cc		\
 test-diff-dwarf/test0-v0.o			\
@@ -759,6 +784,9 @@  test-read-dwarf/test-fallback.c		\
 test-read-dwarf/test-fallback.o		\
 test-read-dwarf/PR29692-kdelibs3-libkjava.so.1.0.0 \
 test-read-dwarf/PR29692-kdelibs3-libkjava.so.1.0.0.abi \
+test-read-dwarf/test-pointer-to-member-1.cc \
+test-read-dwarf/test-pointer-to-member-1.o \
+test-read-dwarf/test-pointer-to-member-1.o.abi \
 \
 test-read-ctf/test0		\
 test-read-ctf/test0.abi		\
@@ -901,6 +929,7 @@  test-annotate/test-anonymous-members-0.cc    \
 test-annotate/test-anonymous-members-0.o     \
 test-annotate/test-anonymous-members-0.o.abi \
 test-annotate/PR29443-missing-xx.o.annotated.abi \
+test-annotate/test-pointer-to-member-1.o.annotated.abi \
 \
 test-types-stability/pr19434-elf0 \
 test-types-stability/pr19139-DomainNeighborMapInst.o \
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt
new file mode 100644
index 00000000..a88d96fb
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt
@@ -0,0 +1,18 @@ 
+Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
+
+1 Changed variable:
+
+  [C] 'int S::* pm' was changed to 'char S::* pm' at test-ptr-to-mbr1-v1.cc:6:1:
+    type of variable changed:
+      pointer-to-member type changed from: 'int S::* to: 'char S::*'
+      in data member type 'int' of pointed-to-member type 'int S::*':
+        type name changed from 'int' to 'char'
+        type size changed from 32 to 8 (in bits)
+      in containing type 'struct S' of pointed-to-member type 'int S::*' at test-ptr-to-mbr1-v1.cc:1:1:
+        type size changed from 32 to 8 (in bits)
+        1 data member change:
+          type of 'int m' changed:
+            type name changed from 'int' to 'char'
+            type size changed from 32 to 8 (in bits)
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc
new file mode 100644
index 00000000..47ed40a1
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc
@@ -0,0 +1,7 @@ 
+struct S
+{
+  int m;
+};
+
+int S::* pm = &S::m;
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..4f05d85961f6dcb600ce77e4268c60d9f74b1b21
GIT binary patch
literal 2624
zcmcgtOHUL*5U$zTg@uvlCW@l&Ks16lvkzcJ6x@U;poS3CgE5B8>^95jKFI7qFdjU5
z@Z!O%p8O4l#EU<{_%A$qGx4BRGu_a%vx$j`m2_9tSI_C!yu5Yqc0$uYkOqrzqzM$@
zbLvPghhiCqVF(_foB}OPP#8BB8u^sC4@pf+&!Va~K-0TP0!SuPUNeByd6Ws!#=CaV
z+|_#nl^z|Zh_oT?Vt>Zav!mI;QvivKrl$>K-nedDGqeom>;pX=sjHbe0~22W!&o$Q
zY$uh4bD7o5oe_Yp8OiPD=>$S>7Dpni61E=Iljb7IDM-U*<eH}a?C&E+Ux)*RZ1}MW
zEt?pK(uA?gYY)w(sj0$Mvrw>S?1EX$7pL>3{H!^#!K&tp6L5o7oHVUQu-jw{HP&Rl
zS3%YBE87eEb0w=ZW9=19s|LC4R)giLt?E-RSM!2g-E$q+t2tghx4to*FP8GTfVG2m
zuIdC%C|YQ*dRto-+eiPM7Ope%t)OK!Si@yLkh`@LM3Czjti8Nlsr<h}9qPmK($c&+
zf$KN<7fTneb^Juzl7#QS;;ee?$;M;EPl6hwqa}`XtPn>!bj87#rMm;((*eh$978&s
zh(W3U{tkHGA2^-;A?dpgPk)Dv!Fw5!@asiQ{z_4SaQSP7qc9+x#s=3<DmYi+jD(9?
z1U=w5?W?Fokm!MOOHUJwlMzYO^&%Cna4zsqTrVj2SFVHIe%=Ti7kS`Ed|OBX+Yi8|
zD+jjQZiDT!x?@+FyIb4znp-Wjg|g$iKHEEHc6_H<W5+}4UXzIsEFnaKH$%PBYBU(W
zmv*xiFdOfP)efA>Gtuck@llMXwH50rl9h#^@bKA_urZVgQ*TOH@{vU~{t_B#zdOat
zXMyslI_;mDll;mwAw7xM;jH@7xuDxzKJ<u$34X=jaC`tcL83n0BccTyYEHu6(S-Ck
zVu!QpyN(tWBj+DH!sJ{q)%PwM;`%?}{fj=Se|m+~{;P<oIT3;p4wgufNcG)BTU`Aw
zy#5N0rTX+fsP%UcqnvphGOh7Kv_3M4`hveeV_f`u?(j_x=Dq}p_}5%k>%ZcE^&B}%
zB;o{ri#8!kZt#)E%NWV3FX?fv2OM1I0fXpA@1MGUw5ICaK?u@({po(oq}CroV_f_Q
Ne^fun!6>WozX7|i+-?8>

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc
@@ -0,0 +1,6 @@ 
+struct S
+{
+  char m;
+};
+
+char S::* pm = &S::m;
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..253a9a353be4d769402911fabb1d7d579364a69c
GIT binary patch
literal 2656
zcmcIl%}>-o6o1{q3RXUrO%z4lLNtQd?gy|U3T{FaP(ujH!5Bl@-C?)N?vidH7!Upd
zdi3f^5B?8a{2M%Z^y*D-CLZ*?b_Rx_8%&HZ>Ad%T?{lW}+E;fT+)Zd22-08<4m5!R
zeC<4tOQBeT0Z74PlsiG|A}EX-4vl<CJOoYCx~5Ro>!9hO1kj-+$)WQiE@ab2l3Qp_
z8n;mC)^UkQOKF#T(}tcI%JiQBNTe}?VaymejT?rR#+*H%cSY(_dfLFmm%uRQ480eV
zXW&A5DSdAcAUP?y-9DQ@2+re^2&;sxNA;w&fO02v!BynAg<rir#At{3ppXeSo6s_e
zz9>x?yRf`w&X14hubcV2J!$97Las28E9R!m(N$J47oC6`tiqUS)r0K@o2{}2^Sv^v
zj$f|L?oJo2;-s}xFs&+-YmN^AYX#O;;9Eh{s=I#P+R5AHGGuGbI?Gm?m1kbI>IK<N
z&vjg{>Uf*kmDPz{p_t23WGh>70w)wLv{$^14U6rf|5np$1T4zR>MryDL&i3(w}D|{
zetyOr#X}tXi}MQ)yzN4-rvrZcj&smsZ#Z5jek0Tv9W8OBV}&@<A-vv4Ogfx6f)SuY
zcN-k9bPVZmDh8!Ic<*CKhn^!S%|J@p*Zvf=c{ezpAql^esL8t&6$qDiGZ2LV;q(YP
z%>{wuc!zXO!bL5DrX`&6uW<bl=k&fs4+M$cD8KaSf)O$ziMn2-!ZpqXzQ^^vf`8^Z
z*sT}!z;TfWe#C1+3fOJ{HjN$FZmR{h&o&*q!rblZy4TofqAipi*Y(-XA+zH<jVe1F
zvgtLL2*DCUBzQg4%guV7HLzr(8892i$7%&m`MK!ypZE|))7gsi6v;|LP<Z%Rl(1ox
z2~#JiB>Bjq8h-_ibPw9a%XftGs5-qrH7EI%XhC`!vHex`rF%hBUfTDFgd89Jj~wqq
zPLQZi^F=g^kD8P4ceEfqiP-+C`qDjDF>?ONBTUW(Q+@BFA+G-~ynoRr^-o_Xwf_oY
zYEFb;kb^~1BvO6X(H2+#JFmaUW2rvPwOW4*G0K_4N2X<7XiWxD7WD;x$uTwlJ$Lwa
zO#JIM@o)HFKYL94TOO~t!5)uSanZNHNsn{=#K9FF(2suf{Zr46&QzTpgrJ|FKh3vH
UYW)-%<Kn0JNA-gojItX42NS8?>;M1&

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt
@@ -0,0 +1,13 @@ 
+Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
+
+1 Changed variable:
+
+  [C] 'int S::* pm' was changed to 'int T::* pm' at test-ptr-to-mbr2-v1.cc:6:1:
+    type of variable changed:
+      pointer-to-member type changed from: 'int S::* to: 'int T::*'
+      in containing type 'struct S' of pointed-to-member type 'int S::*' at test-ptr-to-mbr2-v1.cc:1:1:
+        type name changed from 'S' to 'T'
+        type size hasn't changed
+        no data member change (1 filtered);
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc
new file mode 100644
index 00000000..47ed40a1
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc
@@ -0,0 +1,7 @@ 
+struct S
+{
+  int m;
+};
+
+int S::* pm = &S::m;
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..707440f9d2b03d60b324734e39c33563dd9da5ab
GIT binary patch
literal 2624
zcmcIlOHUL*5U$zTg@uvlCW@l&Ks16lvkzcJ6x@U;poS3CgE5B8>^95jKFI7qFdjU5
z@Z!O%p8O4l#EU<{_%A$qGx4BRGu_a%vx$kZlJ2Vd>N)+Im$&ZSPG}kk(qIveG=Tzq
zP94eRP%OhR48bFmQ=p{@3ggB?BcBrYA*pHUSyc4~XnHqE0Lf&^YX*=yk1`?Jc-Ib^
zyLxY+(xc-Pkv61V?9Ui_b~HP93Lufu^t55j8`q6%hL*vceW0f!bu}|*VB!m47>kCE
z?WD4BF0-1sGXl^xBe~r?oj?fA;z)#5!q%gD(p*G21!=g9T+_6l{e8sf3vr;34L>%a
zWfKEYnlN^G?V-6eHC4E377F%^T`-IJ;&i^0pEV~oSk+u{0&cL1lcv=OcAIRW#+uCc
zDyTYsWqV<Nu4I*Fti7UX)gWN)z}g9XD`;5_*DqRodAm}9+;*$Ma@AJ#sh6vHL9Xt(
zj_cJNubx}qn9dhV`5Z;Ib5$pBLeWBd)!W*#*gpF2v~c-Zl$AAH=KqI`9a`@I!}8M7
zyg7mEH~AM!7p`^uMB9>t@4w=#dhE%@W5iE_8l$5nj&!ULM>=%H!I-7H1K!gC$D<rW
zI-H0>ssH{Cc;6p5o&6!{yADr(hmFB|8IthpMNR%nQGsyzYlfpRAe@GvlUxuuUh9y~
zNVup)&;yRszKU7|i5@7A^fbXZ8IeSOFH+$O=K}x4^@4(b<vQ5y=Z(N|kq3Unw}lk2
z{QzvbTVT8GHrPI^J9d@1yR}WPxz$2jC_Ap}v%O<x$9I}Fc08o+HJJ#(5<(<+Gt?`s
zMuXvdX*XK|v+<5t?ZBx#6P^AOAH`@|Td|%ZSy>1Q51%~=8$+2e^`?|1A6Zo6FQJk4
zyHmV;7ATLZ)BdSB$*)Wk(vyfC&Z;k+3%bqaLyt(9;8*+&#|MxTB<j;WB3i(q<|O<b
zO-PR;b~vlP>u6Cia{j?1OwI*Ueea?nuKxqxzvz?tr&mbrzlxZe6CoJkV2KooRNqas
z#nu19>#y)ws!#8OT7L&I%9+O@(;6>C>m!q>FZc^I#>Kzq4&UTp?n{t}f6ZmJ{ww}h
z&yll4B2MtPXcMyJ1|NC6jFGJRk{;)Jz`=DMFo=Hi{;BInYpUKIgdok=pYFFzYW*QJ
Q#>J2DNA-gojItX48&!4OHvj+t

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc
@@ -0,0 +1,6 @@ 
+struct T
+{
+  int m;
+};
+
+int T::* pm = &T::m;
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..5cec3e47ca82475c1a802563c054f86b44a58311
GIT binary patch
literal 2624
zcmcgtOHUL*5U$x_VPWLCiK3`G5RD+t>;qU41veoIs3C;l!5BkkcAI5%Uzr^U#)C%>
zUOaf!lfS``c=0C~|Aj|yCLXkErW=}eHZd`=lJ2Vd>N)+Imv<iAO=ubj(qIXWHGu+r
zP9DppP%Oa+48tRolc1#t3ggB@BcBpm(4}dqIaKvJXnGGx09{>4uMt4<BFcnl6WuK|
zclX^wrB}x(B5hc^Jdif@%vfgV3_v2S=_$ilFm4(*3@wd0`$11d>RNi<z{HopFqRA*
z+ev2NLV7KIZxo<=R&u+2Hh~bF$B_uDgsn&Qq`81{5>jv#xu$792l|Q87vex66Mk$$
z%OnP)G-2$@`a^ShdOCmI%;)V{J8u?pg_&G2H)l?6vWmIt1l(X1rcA3I>^0b8l{J{}
zl~Hy4^6uine9<b-TKfglszP?RS!dZwv+~r-R=prw^IXUEs*YF7Zfwrv3dLMDVC|rt
ztvG=biWb@{-p-E24$!~V#C2xA6*R3ntGmnxa<^JR1i5~}+RxkN^8YK;p+2lEFE5yr
zxPDWAv2@{D$4|5^UGV)^oK=rK*?5fjNl;^Sw8W8)72-&T?l>5;^mM>`JK%VfV@QWn
zF(~yv&;jrN1E;e;EPdC}>F=;HcrQZ|etoFPUnwdOE`QBP6b6LT*yQ?Y1?MW9lW<Xs
zpe>HmzKU7|i5@7o^fbW)8IeR?FH+$e=K}x4^}K?A<vQ5y=k>sGkq3UncZC$Ng8*#0
za$vjdHrPI^Id+A)d(~~PvC~9bC_Ap}v;7lh$9Ec4b~2>qHJAv&5<(<+JJid~dY$2W
zX*Zeyv+<5t?Z7EN6P^AOAH!%`Td|%ZSxE>A51%~=8%LQi^`?|0A6Zo6ub`3kyHmV;
z7ATLZ)BdSB$*)8c(vyfC&8jb*3%bpvBacX!<X8L+#|M!UB<j;WB3i_u<|O<bO-PR;
zb~LNL8)#86a{j?1OwI*Ueea_ouKz>czvz?tr&mbrzk-;W6CoJoV38DwRNrm1#nu19
z>#y=ys!#8OTEB%D<;>xbX`L6M^^r-`7yJbp<Ko|Qhi`H)_a#Wgzvi-9{}unMXUSP2
z5hwUtv<X>qgO5C3#z<CuNsn_q<lqJm7(zdK|J3!PHC68pLXhI?Pxo6Uwf-;~<Kjp8
MqxwM(Mp=#j4FQ+jcK`qY

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt
@@ -0,0 +1,20 @@ 
+Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
+
+1 Changed variable:
+
+  [C] 'int S::* pm' was changed to 'signed char U::* pm' at test-ptr-to-mbr3-v1.cc:6:1:
+    type of variable changed:
+      pointer-to-member type changed from: 'int S::* to: 'signed char U::*'
+      in data member type 'int' of pointed-to-member type 'int S::*':
+        type name changed from 'int' to 'signed char'
+        type size changed from 32 to 8 (in bits)
+      in containing type 'struct S' of pointed-to-member type 'int S::*' at test-ptr-to-mbr3-v1.cc:1:1:
+        type name changed from 'S' to 'U'
+        type size changed from 32 to 8 (in bits)
+        1 data member change:
+          type of 'int m' changed:
+            type name changed from 'int' to 'signed char'
+            type size changed from 32 to 8 (in bits)
+          and name of 'S::m' changed to 'U::c' at test-ptr-to-mbr3-v1.cc:3:1
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc
new file mode 100644
index 00000000..c763abc1
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc
@@ -0,0 +1,7 @@ 
+struct S
+{
+  int m;
+};
+
+auto pm = &S::m;
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..fd4e48b1328742f93ad020f2441c099e08264753
GIT binary patch
literal 2624
zcmcIlOHUL*5U$x_*Ts?NCW@l&Ks16lvkzcJ6x@U;poS3CgE5B8>^95jzA`%yj0cY%
zym;`cCx3$>@#0S~{tJ)ZOgw1SOgA*`Y+_=pq`RuVdQQLQ<*j?S6PgBsG+2Z~O`rgu
zlZSFS6w5FSL+}XYBxq@Z!nm=}$fv}8=+U(FEUJ0~H2oM!06jfPuNgq{Jj#S<<Eb{9
zQ>h!M^y)Z8qz!2o`!j}~9nB7&0!U;uJ#85C#&zSGp=B^<AL!{wUCqoHnD_!1#-gEP
zJIO4Z%dBSZi~yu&B)6NV69~as9Eq?>*m_h?nu{nWAq|(2Ynt}6zmFJwAr2I>;m0Pl
zY+@iv6UHvDJv5i5rV3ZhLcyM~3uZB2oX(f>v*yGGtC}lLzztS$(zF`EPLnOvSd;l)
z1y#qdY%lE1m8{Z?wOcf;8U(BpSna^Kf|k{A{b_4AZ&xai+io>juG*?T^>Q^Y$kjd9
zalM-3)pP3`)A?d4pQFf5uIdC%C|YQ*dRto-+e80$3zwfoSy{tn{(s2WrS&c_EH5q1
zn-jQxlYg;v;abN}v@JdG{a2h-k3HFVjQB}VV|28{k&YGONQYD$j9HF#!F#*lc$8yE
zhZ8X<_21tG@B0I%vp*z#*TL!UvN3osLlS<+QIo$?R3Kdbn&Bu62&W<FBo_pZ*E*y#
z5-w^H^nl~Euc8(~q6f+&Jxwr9MkJBni&VJ6xxhbhy`bP<xej*cc_VOK<bfaYZ6O70
zF94hF7T9j51GdlVj$LK$PHod`Zne-B%8u*$Z1;%S@ttOk9Sx~_O(sIHgb)ed4E0K@
z(O~#q+RawLY`h~@CvYmyM5q76M=_e#R;;H;Ru+Q7!)H&z#!x0qy(wkMM;6uiOK7D1
z?iMef1<Ir9w0~+&@+;GX^dw>jv+7Idf^Kv9z#|eS_!WP{@d4xniTZSph!$|DISGG9
z6Vl^|9n7llI$BhWoPY2LlXJmT-@9mt>wlm3FZ!hZ=@nA@uOg=AL<mMWSRzFt)prwZ
zarM9O`YSw^>eKt6)^8(5IrBJVTH}RiePj~#1%H9YxcK+n;hP-HeF+lrueq$&f5rdm
zIdYar#0mZuZ9<mZ;3JQhF_KkZ(&JqBIk?UP2GNh+KXv_RP1U=D5TyC~)BTo7tv`gu
QxcCwNsD6-xQC8!B15EwgHvj+t

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc
@@ -0,0 +1,6 @@ 
+struct U
+{
+  signed char c;
+};
+
+auto pm = &U::c;
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..8e6d7f59ebfc9773c8d87ccdb602365e00ae892a
GIT binary patch
literal 2664
zcmcIl&2G~`5FW=Q1Wa4nNKhycgFqCDou8Hv3WZ1&&;mkL1qTGEvXgCMNSw$qRS^ds
zfFoSFaX`ERH%^>+0*-LxhQtA8?A>(PIw}%kB=5|8^SkRE`^B}}*HfAXf;6}STbe)t
zzNWY2S|rwB0><G!%4yKD1VwSjBO_l@_dwIM?0Ho6I%xVBNdUXF46*bvTnN!lWO^OY
zGMUS$?9p+FNgLNrjphtJKb7Bq5FnM)^sHgb8<&iWhL*#eBcNwvbvaixF!4z+j4Osd
zipleEG`F0)ISG)NliaQzN+ASC@JU5gqSoVj(ppA24Ouvg9Jlaubc7h~5FZrs(PmRx
zJ~bAniDLU+(`OB{-f{xCap#`7I5ShaV3tbuoLw@@#qw;iQao=?ucFVA6LN!9K4V&)
z@Tt!hn#^Z`S4Y(e>aB&%YQ?I|SsP{3YC_2Rq16imE9_bwH<-0HN_M>tg;ux23XN{#
zu~%q%VWI80j_WlYuU%MKoh_Ct#R5h43k@f9BGE#7!&_gs*e3e-x}G1hI4kS8Ecg!@
zhqOKfh8v5E^X4?3-<iKSy6D`8FZ7yr!S`QD9(v+U$7{uJh8m-zC5d#bkVHB}*L<5v
zhuzyS0(96j1jnnLKsxM8Kq(L2{{+%uWE)DeFfQ$DFbzXq4$f&r!f!8X@-9UM!f7|6
z!-*&gfN**Q9pHk%am*t+Ea9RSK~)KtPwOtn>3xeH2ok+fe(4hiC&-8->UyyX=QtPm
z2d<YC{4>|V?mz2<j*C1DV%`!`$TmZ;Y3{&w`+cwj)^_X$bDuWXJb%55wn%ndH((oo
zn4Q4!o9xe!w&ybuf+d7V@LHtTyPXd6v83M(nT_*f^+TurM0EO3d<vuKY{hwsWHliu
zJo-FJ*m0BzQzxh<`N*Oge;SQ+4~E6dcZBk&I=w$NC;8QAL3$Lk!K(Vwy`U+t4Lo9@
z%18el$H$NpB<j<A5iQ`O<|O<LEl3YyHds~P6||@rIsf1hCg*~wzPHej)c+UWzvz?t
zr>~RRe*-Z!CqgjE!3rr7slIDyORE2a*I(kXRG;Qrt=~h8au)HC=?*XSPzF&J^#y;<
zF*W`@clfqL{L3NnulV1;utWT79<R8;M;@=@qHlqdp5*$8gDX5>Kl;)4Pdz_6Q+0L_
bf=Pb<G~Y6*^~cee6kp>X)wgmm%4+;?2kqdP

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt
@@ -0,0 +1,12 @@ 
+Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+Variables changes summary: 0 Removed, 1 Changed, 0 Added variable
+
+1 Changed variable:
+
+  [C] 'int S::* pm' was changed to 'double S::* pm' at test-ptr-to-mbr4-v1.cc:7:1:
+    type of variable changed:
+      pointer-to-member type changed from: 'int S::* to: 'double S::*'
+      in data member type 'int' of pointed-to-member type 'int S::*':
+        type name changed from 'int' to 'double'
+        type size changed from 32 to 64 (in bits)
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc
new file mode 100644
index 00000000..9161dfc0
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc
@@ -0,0 +1,8 @@ 
+struct S
+{
+  int m0;
+  double m1;
+};
+
+auto pm = &S::m0;
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..36f028461af4c24312b17bbe9f0768123337fcb3
GIT binary patch
literal 2688
zcmcgt&2AG(5UzIHv0+F^u*5&>2?Fsu<FN@|$SSO*hz$XRq96pfXvXe110GK_o}jGu
zzyomIN7%z2kaz%&ya87(T=&Qgi33!PyPZxm7Dz~2Qg>B-_1Dwg)$`)^{XYtffg%RC
zU{6yh@~J(!or!HY0(0;T<r1(8K?R!TX;Q==!YpHzHtH<$fR{-^u>r+{D=1Z<SS*Eu
z6iSsMS*Cu$sf~l3EpJD_%2N+eIlyrm5t{~HS)6CTSvRfK>J1Bv&av||Rg2e7)n<<Y
z@G9dK%UZO^gH-{F=fJXVSsYhblHv>&s==A+YW41Mfbs&R%=}lYzn>@|1gCLiUxO>m
zqb7nSv|UEd82dakO^o&p2MV=p3k$4PI6O*|C0Tj!$X>p3rSYrXXt)b*!)|)bYhKH{
zZeLs%UHguoN`uq9WIIv1GZ0HXF%U`ELDf$>TT8n)T25=hdET_09(3cKpf8}l6-T1p
zjk{07dM`}t{V?!@u;+*U`r7(6ui5hIsTiiide=|=OmxuR4L3I(v5WrOF`j@(oHTYK
z5d|Uva(A}V5fmg?&vQGS|F6)5`mnORyl7v<ZM^gYJD6?x#EA~52p_-XIq>`r050!@
z8N<<%M;t5U5!ahZbKp?cv^|l-fjvc&IN<%yAr6OfQ0xuBo1a4*roTa{3+A-%8u!73
zv%zl7NckN^O?xuN6$sbA=Ex`v2&b_w^`izZRXC~Psun?aHJtLVNqtjtI&b|e)!L|L
zN%{~wD`mBwQ0i9={EgHb2L4X!;12(cQa?bRCL_M3q*Uyt;8Hh&8w`iwCZg}VT@mc`
zHp0PXjJ8bngCG&l_nG~~AN0ijkbXE2Dg;X?k>HI?@5E6g@R4-~aVlJFA7_~Q9eTNc
zo=#y3+FP}sDq~v-2G1Tw4Vy=qFtdZ&nvX7;@fXlY_h3@Ien%*esnhwHImxe06H+{4
z<Jt73dqG{^9(#<0HQD<AO8hW#f>eF#FQO$JW=_Ii(}dI;vGHvB(mgjZay}|Sn-q;q
z-+O4wTmL7yezi_oKfO-o`n!mkIT3=E1Y4wNWcqHPEwBEpY|1+_mg-YqoAtL5qnsWN
zo%*uSV;w|U)mQv4iJ9?lrNe*UiGMjE{+0ai*S{10w~RO3;Ju7DakXxRlb+}LL4s>C
oU>5!8{WJHE_SEbhgus*MPyMZvS$__VdGSx=`Te5@qin{11-gdeg#Z8m

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc
@@ -0,0 +1,7 @@ 
+struct S
+{
+  int m0;
+  double m1;
+};
+
+auto pm = &S::m1;
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..4dbd70288431b6cfc03bcf2b3ca8cb31c00e59eb
GIT binary patch
literal 2696
zcmcIm&2G~`5T4B@O~ACYMB*RfA`riJekh?7wM43*6cDOF2yVqrwy7bGE5}7e9C!e(
zJOT$E0Eq*Sz>Qbn0!PjqV8+>{+r<$`h>`4>`R3QVJDa?`e&<GxF;K){0k$=T0+hzK
z<yI=TU>{6DNy1N&7l5T|j<9KINEyEmlZ=&GsIagGyhsv?b;$2tLa7A#d?Dy3P$=ce
zGIktaWMC(X8zHdb*j-e1aeNJljRP;uO|z@k6>GUXYXRh@*r|!K#VbcDlLr8Jnemck
z%~|BZ$^iM3U|9<m#|{fpoWMdAI96UR-#Q3ToS~Gd|8n`-p&UYR6rc2KetoB`FIfY5
z0d41yGseD8j1!~v!v}>*x|BIq$?YAcN#mC8KCl<hpRZrG>vea=t=o-S<6^B@yJVla
zCpz{`FOdePan^RiWV0{kyP_}RppB{*x7X*lW}8lP#(CDToi22uO}{4~5rf3pNMa|6
zoY0TaT6f!RsIEt$sCJ^xlc3rSl4>vTJwNDrL9e=U?_#adtW_y;Q0;h$mx>PBJHgtT
zBeu|gBf^al!>l6oMf@K!j%a-Z3`>iPbM_fr#<PF1g6Wcve9;Ew;oFZa2c9_zc(&x3
zFk?7cvWR1aEaIRImFB>qsA=0Ghh5u>CUL;?pFte<WT4bPp8O2rF#a1#Q!u4{ubTH!
zrwykyCFQppHT^491;X{O**6RW!s$`8UkVDx(N5{GhO1fx-O_N%zasTD$!Wh;4+N>+
zD1U(fNhc&%bpxqiFz^pjuN(L$se?Os9wwfTJc);VT}g@9O2DPD1J@r6z>P)Eb34M{
z?5+m=wFqsg?D>8yp6xJuvDfd4oguxTFH{JYP$I#rsosvlP~au&_M=3&I6lrG@!E8A
z|2rMQ6tuQ#Jyph*5)7VRj2bqLGGXQfwWN=}#{`-BX^ENfH)XuZ%=)x{CPpzTJ~9%R
zzH}~V%3FrtBRTqSCB7FqL8^b6FQR#T%$$V3rx#Lp$bP*|UpnU|M$X42Xp^Fm>3bV(
zS^cY_P<>MWbUT^-cMvmkA_NN(Y?7jp>AQ-ytojG#P^x{P`ZU*O{SCw@XAK{n5?Sb>
z4x+5;EB-=aX8cF#@bwSzuSUeblfV1bKg7S5@rE0G*8Vr>Hr2PnNY8TpBEc0IFo}M2
l|C#GYYiiC8LNH64f<*JJlUaWXjal)J<^H|VgHbl)e*(#9;N1WK

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-output-1.txt b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-output-1.txt
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc
new file mode 100644
index 00000000..e8c26c23
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc
@@ -0,0 +1,8 @@ 
+struct S
+{
+  int m0;
+  int m1;
+};
+
+auto pm = &S::m0;
+
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.o
new file mode 100644
index 0000000000000000000000000000000000000000..e07652ea76e548177ecec710c45fd38850f3675d
GIT binary patch
literal 2640
zcmcIlPfrs;6o1ogp}K-V6aS%hL5(2p_K#2z12!Rus4)cN!Gj^Y?NC<PmTXso@!$vW
zVvHZbnD`kydGl!e1YSLQ_Mq?W&cHZqjfwFkJMX>U``ej$(-%v3Z)O++NemWXUy~@n
z=iI(rkHtESz%Y0y=YZu2%Fr@KizMSd<QdB^pw5Ca7$l%nfh<W`$YyhXJA&L<)MBUc
zzU=^5f8P=UhYVa2Vgq30=f>D|^V(SdN@3Q-V#DmhV8Jwsqs5`)07iisdDEOT(Zys1
zOnx3rbHOyQvs@9*6jlniPXP2yQ=-^urEue91|c|&U)(yxze1GUXH^t)XuE`*G4^9{
zfEaBOekc^<{mQUn=4g^84qd+Yz*?M|s$8`y6=&M1Sk-d%O1V~^u_o4d)4JtG!eCb?
zEjx&ww)uREw|VF{P<6w`=KSt#&8|(`J5|eWLBzX}y&Z*i)Ug9EoUwPxPNM;(%}&5e
z%}(>NUuyYLY0LLq&u_W@R%vzZO1WAqmngDZYPyjdi#FPu{>FyQchP^lg9pHqtUT~|
z_#ZO%XuSsv%ZrP1)&%a~<X>!Eyw`tN=xnm^{b!nsk$ThdE{W@)#~5fyBLgd>kpX>a
zFlOoRfgkFD<9$yd1CFGi)c;@)eBc0112C-ouDucHaXL7jF-gC}sHwkFRv=vcH6uwF
z5Kf<@V?vNPj&e+=6kOIK=#jwbTxBhSWDk@_d8%NXj7T!SpQvzIaEX5qdPT#(2pyd6
zvmkOk<WZRLO({iuHv)$S3>>f91t;WNuG8e+)7HA*-sqq$mR-*a`Oa@<H+0)A{(H!l
z-{vv|OGuI6^;mCof`H?*>9ji$cW_YbZsaze$WH%>k76|Kt=vzUtS$wO$8Vp4jiF4K
zJ}Gs@M-}z>i)f_t?iH`z1<IrAbbfkH@~hK=w2`pARrjTPLDO8{^GJkQG2*WTeiS)D
zvOdib(L8>7PQu^Of+X*6q8;>IMMGM=AwWw83a<O!K|HPhPojU>C-qOSklue2F+C?j
za87_VQWVmC*U^?%|Es8fOT<!rdLQ)q+lW!lGJYyO6oqJiRFd^2e~!kq`1iu$n;I;9
z36k+Ig{;?qE&kd|<gAd4ll%?Zq^!8XM-i`LB<sGUr@4L-;Hn51LO*){^!=kf)n^AG
bI3f0*=36Db{xBNT;wQwT`c@4_S&#n(0c+iY

literal 0
HcmV?d00001

diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc
--- /dev/null
+++ b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc
@@ -0,0 +1,7 @@ 
+struct S
+{
+  int m0;
+  int m1;
+};
+
+auto pm = &S::m1;
diff --git a/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.o b/tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.o
new file mode 100644
index 0000000000000000000000000000000000000000..24d3038430dc2d64be3701bbef4d59094a54fbb8
GIT binary patch
literal 2648
zcmcgu%}*0i5TDm=p}6wd#4pq?L?ej1{QxRrz$OF%HHKh38nW9y$|~EE?Lsgf`~$pr
z@Z{OEiD&-;Z^V;-f*w74(3$Of@_1~GiHVcEH#5JPc{4ljqkXyj;BJaBki=jSjx>n^
ze90Wi)mW^;2n<77z#j4puq>%5n#O37WITc_W7$R2Sx^Ln1e8jUCMgZ+bjEK+khzRn
z>@?o98vyI=Sw^7Gz^Oy5AB^n$7`tuW8tYxl&6${Nm|Y#nnMQszKXewr$T1^pn)4>Q
zm@J2jUjfrxG!3jQlZQ*WwcNdP06jCbQ0%mpyK_E;5M0C&mk#k)h?GaHjA90D*O4>E
zehl;zqh{eiAs_cG#qz1a&N6Z6%EQOj($rMxrd29AGfv4W7t7PdN^#bj*x+?*)s2L~
zE>Bu^5bZVjLW4JX=+{tn!`k-3!Cb|z%-H*7%WgnnyA|+4y;Xne7aD$4*zrBr^Bb<e
zQ&``aE|x3BLd4rqyHIx{Hx_NQ*Zr+6n;)S6ZVNljLpy5O0S`PL0=e6}Q3vwES$n_a
z)N21PQJ4I%va~dBO<?~f|Dttqum3R7-lXCC&m<Qk@x<d<630Q0G0>7k#_!v3+-gA2
zaX@GW^mf7fy5M-;6Uczm2`JS+&;{>5fzt&TR=)T573i`%cs*m1ey31Vzfxu(T>YAn
zP8bkQV?*d?G+d}~LBVA%f}RMR_EqL0NY+4WD^C`TlMzYg^*buu5M1IPg<jI|&q4>M
z{XB?V4|x=J__mZHeh`5}_YNGd-3BM*JFZjb-d<zVZ*H~F7R#>Zg?#^**$v%hgC7ss
z@ta(RU<xS`ycz4YRuFJ}Hl1cG;tpOEyB)c;XR^|N;-eT%y_Nlxi&dqd@%ZgiurZVg
z({D;u_^5kHkgi`7m>$0>;&rCyr~T70ijnbK+5);SoeTPHt7?8#@q_nT;Dg8slJ(O)
zB3i(quSxiOnvmrA?Pw=`*U^v^Zwk<ofr9J4_YqI3|4`H~>!kYW71HakBc`v35KIZM
zLW)AV?<U%k@_!Zi<vvh;dLQ)syNJ=6MI0)*A`$gRC7ECH7idh1{~#Q`slmdRAQ}Hk
z$a?;_;-|ep&I-vm$={$&%8DC&QvMpKxb91OlIx)W*G0e(`qBHR_m6t2-yMX&68)$9
Wt&*O97>!BsMe(S<Q-e{~<9`7cg5E>`

literal 0
HcmV?d00001

diff --git a/tests/data/test-annotate/test-pointer-to-member-1.o.annotated.abi b/tests/data/test-annotate/test-pointer-to-member-1.o.annotated.abi
--- /dev/null
+++ b/tests/data/test-annotate/test-pointer-to-member-1.o.annotated.abi
@@ -0,0 +1,99 @@ 
+<abi-corpus version='2.2'>
+  <elf-function-symbols>
+    <!-- main -->
+    <elf-symbol name='main' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <!-- pmc -->
+    <elf-symbol name='pmc' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- pmcu -->
+    <elf-symbol name='pmcu' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- pmd -->
+    <elf-symbol name='pmd' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- pmf -->
+    <elf-symbol name='pmf' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- pmi -->
+    <elf-symbol name='pmi' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- pmu -->
+    <elf-symbol name='pmu' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <!-- pmy -->
+    <elf-symbol name='pmy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr address-size='64' path='test-pointer-to-member-1.cc' comp-dir-path='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf' language='LANG_C_plus_plus_14'>
+    <!-- char -->
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <!-- char Y::* -->
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-1' containing-type-id='type-id-2' id ='type-id-3'/>
+    <!-- double -->
+    <type-decl name='double' size-in-bits='64' id='type-id-4'/>
+    <!-- double X::* -->
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-4' containing-type-id='type-id-5' id ='type-id-6'/>
+    <!-- int -->
+    <type-decl name='int' size-in-bits='32' id='type-id-7'/>
+    <!-- int T::* -->
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-7' containing-type-id='type-id-8' id ='type-id-9'/>
+    <!-- int U::* -->
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-7' containing-type-id='type-id-10' id ='type-id-11'/>
+    <!-- int X::* -->
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-7' containing-type-id='type-id-5' id ='type-id-12'/>
+    <!-- struct T -->
+    <class-decl name='T' size-in-bits='32' is-struct='yes' naming-typedef-id='type-id-8' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='12' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int T::t -->
+        <var-decl name='t' type-id='type-id-7' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='12' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- struct X -->
+    <class-decl name='X' size-in-bits='32' is-struct='yes' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='1' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <!-- int X::a -->
+        <var-decl name='a' type-id='type-id-7' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='3' column='1'/>
+      </data-member>
+    </class-decl>
+    <!-- typedef T T -->
+    <typedef-decl name='T' type-id='type-id-13' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='12' column='1' id='type-id-8'/>
+    <!-- union U -->
+    <union-decl name='U' size-in-bits='32' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='20' column='1' id='type-id-10'>
+      <data-member access='public'>
+        <!-- int U::u -->
+        <var-decl name='u' type-id='type-id-7' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='20' column='1'/>
+      </data-member>
+    </union-decl>
+    <!-- void (X::*)(int) -->
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-14' containing-type-id='type-id-5' id ='type-id-15'/>
+    <!-- X* -->
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-16'/>
+    <!-- struct Y -->
+    <class-decl name='Y' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-2'/>
+    <!-- int X::* pmi -->
+    <var-decl name='pmi' type-id='type-id-12' mangled-name='pmi' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='7' column='1' elf-symbol-id='pmi'/>
+    <!-- void -->
+    <type-decl name='void' id='type-id-17'/>
+    <!-- void (X::* pmf)(int) -->
+    <var-decl name='pmf' type-id='type-id-15' mangled-name='pmf' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='8' column='1' elf-symbol-id='pmf'/>
+    <!-- double X::* pmd -->
+    <var-decl name='pmd' type-id='type-id-6' mangled-name='pmd' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='9' column='1' elf-symbol-id='pmd'/>
+    <!-- char Y::* pmc -->
+    <var-decl name='pmc' type-id='type-id-3' mangled-name='pmc' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='10' column='1' elf-symbol-id='pmc'/>
+    <!-- int T::* pmy -->
+    <var-decl name='pmy' type-id='type-id-9' mangled-name='pmy' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='13' column='1' elf-symbol-id='pmy'/>
+    <!-- int U::* pmu -->
+    <var-decl name='pmu' type-id='type-id-11' mangled-name='pmu' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='21' column='1' elf-symbol-id='pmu'/>
+    <!-- int U::* pmcu -->
+    <var-decl name='pmcu' type-id='type-id-11' mangled-name='pmcu' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='24' column='1' elf-symbol-id='pmcu'/>
+    <!-- int main() -->
+    <function-decl name='main' mangled-name='main' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='main'>
+      <!-- int -->
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <!-- void (int) -->
+    <function-type size-in-bits='64' method-class-id='type-id-5' id='type-id-14'>
+      <!-- implicit parameter of type 'X*' -->
+      <parameter type-id='type-id-16' is-artificial='yes'/>
+      <!-- parameter of type 'int' -->
+      <parameter type-id='type-id-7'/>
+      <!-- void -->
+      <return type-id='type-id-17'/>
+    </function-type>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi b/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi
index a9115aa8..c90a38fd 100644
--- a/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi
+++ b/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi
@@ -144,17 +144,18 @@ 
     <type-decl name='double' size-in-bits='64' id='type-id-6'/>
     <type-decl name='float' size-in-bits='32' id='type-id-7'/>
     <type-decl name='int' size-in-bits='32' id='type-id-8'/>
-    <type-decl name='long double' size-in-bits='128' id='type-id-9'/>
-    <type-decl name='long int' size-in-bits='64' id='type-id-10'/>
-    <type-decl name='long long int' size-in-bits='64' id='type-id-11'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-8' containing-type-id='type-id-9' id ='type-id-10'/>
+    <type-decl name='long double' size-in-bits='128' id='type-id-11'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-12'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-13'/>
     <type-decl name='sizetype' size-in-bits='64' id='type-id-4'/>
-    <class-decl name='_G_fpos_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-12' visibility='default' id='type-id-13'/>
-    <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' id='type-id-14'/>
-    <class-decl name='__mbstate_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-15' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-16'>
+    <class-decl name='_G_fpos_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-14' visibility='default' id='type-id-15'/>
+    <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' id='type-id-16'/>
+    <class-decl name='__mbstate_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-17' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-18'>
       <member-type access='public'>
-        <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-17'>
+        <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-19'>
           <data-member access='public'>
-            <var-decl name='__wch' type-id='type-id-18' visibility='default' filepath='/usr/include/wchar.h' line='88' column='1'/>
+            <var-decl name='__wch' type-id='type-id-20' visibility='default' filepath='/usr/include/wchar.h' line='88' column='1'/>
           </data-member>
           <data-member access='public'>
             <var-decl name='__wchb' type-id='type-id-3' visibility='default' filepath='/usr/include/wchar.h' line='92' column='1'/>
@@ -165,42 +166,42 @@ 
         <var-decl name='__count' type-id='type-id-8' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='__value' type-id='type-id-17' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
+        <var-decl name='__value' type-id='type-id-19' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-19'>
+    <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-21'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='gp_offset' type-id='type-id-18' visibility='default'/>
+        <var-decl name='gp_offset' type-id='type-id-20' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='fp_offset' type-id='type-id-18' visibility='default'/>
+        <var-decl name='fp_offset' type-id='type-id-20' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='overflow_arg_area' type-id='type-id-20' visibility='default'/>
+        <var-decl name='overflow_arg_area' type-id='type-id-22' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='reg_save_area' type-id='type-id-20' visibility='default'/>
+        <var-decl name='reg_save_area' type-id='type-id-22' visibility='default'/>
       </data-member>
     </class-decl>
-    <class-decl name='div_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-21' visibility='default' id='type-id-22'/>
-    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-23'/>
-    <class-decl name='ldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-24' visibility='default' filepath='/usr/include/stdlib.h' line='105' column='1' id='type-id-25'>
+    <class-decl name='div_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-23' visibility='default' id='type-id-24'/>
+    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' id='type-id-25'/>
+    <class-decl name='ldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-26' visibility='default' filepath='/usr/include/stdlib.h' line='105' column='1' id='type-id-27'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='quot' type-id='type-id-10' visibility='default' filepath='/usr/include/stdlib.h' line='107' column='1'/>
+        <var-decl name='quot' type-id='type-id-12' visibility='default' filepath='/usr/include/stdlib.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='rem' type-id='type-id-10' visibility='default' filepath='/usr/include/stdlib.h' line='108' column='1'/>
+        <var-decl name='rem' type-id='type-id-12' visibility='default' filepath='/usr/include/stdlib.h' line='108' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='lldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-26' visibility='default' filepath='/usr/include/stdlib.h' line='117' column='1' id='type-id-27'>
+    <class-decl name='lldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-28' visibility='default' filepath='/usr/include/stdlib.h' line='117' column='1' id='type-id-29'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='quot' type-id='type-id-11' visibility='default' filepath='/usr/include/stdlib.h' line='119' column='1'/>
+        <var-decl name='quot' type-id='type-id-13' visibility='default' filepath='/usr/include/stdlib.h' line='119' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='rem' type-id='type-id-11' visibility='default' filepath='/usr/include/stdlib.h' line='120' column='1'/>
+        <var-decl name='rem' type-id='type-id-13' visibility='default' filepath='/usr/include/stdlib.h' line='120' column='1'/>
       </data-member>
     </class-decl>
-    <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-28'>
+    <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-30'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='tm_sec' type-id='type-id-8' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
       </data-member>
@@ -229,235 +230,235 @@ 
         <var-decl name='tm_isdst' type-id='type-id-8' 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-10' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
+        <var-decl name='tm_gmtoff' type-id='type-id-12' 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-29' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
+        <var-decl name='tm_zone' type-id='type-id-31' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='FILE' type-id='type-id-14' filepath='/usr/include/stdio.h' line='48' column='1' id='type-id-30'/>
-    <typedef-decl name='_G_fpos_t' type-id='type-id-13' filepath='/usr/include/_G_config.h' line='25' column='1' id='type-id-12'/>
-    <typedef-decl name='__FILE' type-id='type-id-14' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-31'/>
-    <typedef-decl name='__clock_t' type-id='type-id-10' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='135' column='1' id='type-id-32'/>
-    <typedef-decl name='__compar_fn_t' type-id='type-id-33' filepath='/usr/include/stdlib.h' line='741' column='1' id='type-id-34'/>
-    <typedef-decl name='__int32_t' type-id='type-id-8' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='40' column='1' id='type-id-35'/>
-    <typedef-decl name='__mbstate_t' type-id='type-id-16' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-15'/>
-    <typedef-decl name='__time_t' type-id='type-id-10' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='139' column='1' id='type-id-36'/>
-    <typedef-decl name='clock_t' type-id='type-id-32' filepath='/usr/include/time.h' line='59' column='1' id='type-id-37'/>
-    <typedef-decl name='div_t' type-id='type-id-22' filepath='/usr/include/stdlib.h' line='101' column='1' id='type-id-21'/>
-    <typedef-decl name='fpos_t' type-id='type-id-12' filepath='/usr/include/stdio.h' line='110' column='1' id='type-id-38'/>
-    <typedef-decl name='int_least32_t' type-id='type-id-8' filepath='/usr/include/stdint.h' line='67' column='1' id='type-id-39'/>
-    <typedef-decl name='intmax_t' type-id='type-id-10' filepath='/usr/include/stdint.h' line='134' column='1' id='type-id-40'/>
-    <typedef-decl name='ldiv_t' type-id='type-id-25' filepath='/usr/include/stdlib.h' line='109' column='1' id='type-id-24'/>
-    <typedef-decl name='lldiv_t' type-id='type-id-27' filepath='/usr/include/stdlib.h' line='121' column='1' id='type-id-26'/>
-    <typedef-decl name='mbstate_t' type-id='type-id-15' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-41'/>
-    <typedef-decl name='time_t' type-id='type-id-36' filepath='/usr/include/time.h' line='75' column='1' id='type-id-42'/>
-    <typedef-decl name='wctrans_t' type-id='type-id-43' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-44'/>
-    <typedef-decl name='wctype_t' type-id='type-id-45' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-46'/>
-    <typedef-decl name='wint_t' type-id='type-id-18' filepath='/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h' line='132' column='1' id='type-id-47'/>
-    <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-48'/>
-    <type-decl name='unsigned int' size-in-bits='32' id='type-id-18'/>
-    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-45'/>
-    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-49'/>
-    <type-decl name='wchar_t' size-in-bits='32' id='type-id-50'/>
-    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-51'/>
-    <qualified-type-def type-id='type-id-51' restrict='yes' id='type-id-52'/>
-    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-53'/>
+    <typedef-decl name='FILE' type-id='type-id-16' filepath='/usr/include/stdio.h' line='48' column='1' id='type-id-32'/>
+    <typedef-decl name='_G_fpos_t' type-id='type-id-15' filepath='/usr/include/_G_config.h' line='25' column='1' id='type-id-14'/>
+    <typedef-decl name='__FILE' type-id='type-id-16' filepath='/usr/include/stdio.h' line='64' column='1' id='type-id-33'/>
+    <typedef-decl name='__clock_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='135' column='1' id='type-id-34'/>
+    <typedef-decl name='__compar_fn_t' type-id='type-id-35' filepath='/usr/include/stdlib.h' line='741' column='1' id='type-id-36'/>
+    <typedef-decl name='__int32_t' type-id='type-id-8' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='40' column='1' id='type-id-37'/>
+    <typedef-decl name='__mbstate_t' type-id='type-id-18' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-17'/>
+    <typedef-decl name='__time_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='139' column='1' id='type-id-38'/>
+    <typedef-decl name='clock_t' type-id='type-id-34' filepath='/usr/include/time.h' line='59' column='1' id='type-id-39'/>
+    <typedef-decl name='div_t' type-id='type-id-24' filepath='/usr/include/stdlib.h' line='101' column='1' id='type-id-23'/>
+    <typedef-decl name='fpos_t' type-id='type-id-14' filepath='/usr/include/stdio.h' line='110' column='1' id='type-id-40'/>
+    <typedef-decl name='int_least32_t' type-id='type-id-8' filepath='/usr/include/stdint.h' line='67' column='1' id='type-id-41'/>
+    <typedef-decl name='intmax_t' type-id='type-id-12' filepath='/usr/include/stdint.h' line='134' column='1' id='type-id-42'/>
+    <typedef-decl name='ldiv_t' type-id='type-id-27' filepath='/usr/include/stdlib.h' line='109' column='1' id='type-id-26'/>
+    <typedef-decl name='lldiv_t' type-id='type-id-29' filepath='/usr/include/stdlib.h' line='121' column='1' id='type-id-28'/>
+    <typedef-decl name='mbstate_t' type-id='type-id-17' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-43'/>
+    <typedef-decl name='time_t' type-id='type-id-38' filepath='/usr/include/time.h' line='75' column='1' id='type-id-44'/>
+    <typedef-decl name='wctrans_t' type-id='type-id-45' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-46'/>
+    <typedef-decl name='wctype_t' type-id='type-id-47' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-48'/>
+    <typedef-decl name='wint_t' type-id='type-id-20' filepath='/usr/lib/llvm-3.9/bin/../lib/clang/3.9.1/include/stddef.h' line='132' column='1' id='type-id-49'/>
+    <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-50'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-20'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-47'/>
+    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-51'/>
+    <type-decl name='wchar_t' size-in-bits='32' id='type-id-52'/>
+    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-53'/>
     <qualified-type-def type-id='type-id-53' restrict='yes' id='type-id-54'/>
-    <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-55'/>
-    <reference-type-def kind='lvalue' type-id='type-id-56' size-in-bits='64' id='type-id-57'/>
-    <reference-type-def kind='rvalue' type-id='type-id-56' size-in-bits='64' id='type-id-58'/>
-    <pointer-type-def type-id='type-id-56' size-in-bits='64' id='type-id-59'/>
-    <reference-type-def kind='lvalue' type-id='type-id-60' size-in-bits='64' id='type-id-61'/>
-    <pointer-type-def type-id='type-id-60' size-in-bits='64' id='type-id-62'/>
-    <reference-type-def kind='lvalue' type-id='type-id-63' size-in-bits='64' id='type-id-64'/>
-    <pointer-type-def type-id='type-id-63' size-in-bits='64' id='type-id-65'/>
-    <reference-type-def kind='lvalue' type-id='type-id-66' size-in-bits='64' id='type-id-67'/>
-    <reference-type-def kind='rvalue' type-id='type-id-66' size-in-bits='64' id='type-id-68'/>
-    <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-69'/>
-    <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-71'/>
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-55'/>
+    <qualified-type-def type-id='type-id-55' restrict='yes' id='type-id-56'/>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-57'/>
+    <reference-type-def kind='lvalue' type-id='type-id-58' size-in-bits='64' id='type-id-59'/>
+    <reference-type-def kind='rvalue' type-id='type-id-58' size-in-bits='64' id='type-id-60'/>
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-61'/>
+    <reference-type-def kind='lvalue' type-id='type-id-62' size-in-bits='64' id='type-id-63'/>
+    <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-64'/>
+    <reference-type-def kind='lvalue' type-id='type-id-65' size-in-bits='64' id='type-id-66'/>
+    <pointer-type-def type-id='type-id-65' size-in-bits='64' id='type-id-67'/>
+    <reference-type-def kind='lvalue' type-id='type-id-68' size-in-bits='64' id='type-id-69'/>
+    <reference-type-def kind='rvalue' type-id='type-id-68' size-in-bits='64' id='type-id-70'/>
+    <pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-71'/>
     <pointer-type-def type-id='type-id-72' size-in-bits='64' id='type-id-73'/>
     <pointer-type-def type-id='type-id-74' size-in-bits='64' id='type-id-75'/>
     <pointer-type-def type-id='type-id-76' size-in-bits='64' id='type-id-77'/>
     <pointer-type-def type-id='type-id-78' size-in-bits='64' id='type-id-79'/>
-    <reference-type-def kind='lvalue' type-id='type-id-80' size-in-bits='64' id='type-id-81'/>
-    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-82'/>
-    <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-84'/>
-    <reference-type-def kind='lvalue' type-id='type-id-85' size-in-bits='64' id='type-id-86'/>
-    <pointer-type-def type-id='type-id-85' size-in-bits='64' id='type-id-87'/>
-    <reference-type-def kind='lvalue' type-id='type-id-88' size-in-bits='64' id='type-id-89'/>
-    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-90'/>
-    <reference-type-def kind='lvalue' type-id='type-id-91' size-in-bits='64' id='type-id-92'/>
-    <pointer-type-def type-id='type-id-93' size-in-bits='64' id='type-id-94'/>
-    <reference-type-def kind='lvalue' type-id='type-id-95' size-in-bits='64' id='type-id-96'/>
-    <pointer-type-def type-id='type-id-95' size-in-bits='64' id='type-id-97'/>
-    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-99'/>
+    <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-82' size-in-bits='64' id='type-id-83'/>
+    <pointer-type-def type-id='type-id-82' size-in-bits='64' id='type-id-84'/>
+    <pointer-type-def type-id='type-id-85' size-in-bits='64' id='type-id-86'/>
+    <reference-type-def kind='lvalue' type-id='type-id-87' size-in-bits='64' id='type-id-88'/>
+    <pointer-type-def type-id='type-id-87' size-in-bits='64' id='type-id-89'/>
+    <reference-type-def kind='lvalue' type-id='type-id-90' size-in-bits='64' id='type-id-91'/>
+    <pointer-type-def type-id='type-id-90' size-in-bits='64' id='type-id-92'/>
+    <reference-type-def kind='lvalue' type-id='type-id-93' size-in-bits='64' id='type-id-94'/>
+    <pointer-type-def type-id='type-id-95' size-in-bits='64' id='type-id-96'/>
+    <reference-type-def kind='lvalue' type-id='type-id-97' size-in-bits='64' id='type-id-98'/>
+    <pointer-type-def type-id='type-id-97' size-in-bits='64' id='type-id-99'/>
     <pointer-type-def type-id='type-id-100' size-in-bits='64' id='type-id-101'/>
     <pointer-type-def type-id='type-id-102' size-in-bits='64' id='type-id-103'/>
     <pointer-type-def type-id='type-id-104' size-in-bits='64' id='type-id-105'/>
     <pointer-type-def type-id='type-id-106' size-in-bits='64' id='type-id-107'/>
-    <reference-type-def kind='lvalue' type-id='type-id-108' size-in-bits='64' id='type-id-109'/>
-    <reference-type-def kind='rvalue' type-id='type-id-108' size-in-bits='64' id='type-id-110'/>
-    <pointer-type-def type-id='type-id-108' size-in-bits='64' id='type-id-111'/>
-    <pointer-type-def type-id='type-id-112' size-in-bits='64' id='type-id-113'/>
-    <reference-type-def kind='lvalue' type-id='type-id-114' size-in-bits='64' id='type-id-115'/>
-    <reference-type-def kind='rvalue' type-id='type-id-114' size-in-bits='64' id='type-id-116'/>
-    <pointer-type-def type-id='type-id-114' size-in-bits='64' id='type-id-117'/>
-    <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-119'/>
-    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-120'/>
-    <qualified-type-def type-id='type-id-120' restrict='yes' id='type-id-121'/>
-    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-122'/>
+    <pointer-type-def type-id='type-id-108' size-in-bits='64' id='type-id-109'/>
+    <reference-type-def kind='lvalue' type-id='type-id-110' size-in-bits='64' id='type-id-111'/>
+    <reference-type-def kind='rvalue' type-id='type-id-110' size-in-bits='64' id='type-id-112'/>
+    <pointer-type-def type-id='type-id-110' size-in-bits='64' id='type-id-113'/>
+    <pointer-type-def type-id='type-id-114' size-in-bits='64' id='type-id-115'/>
+    <reference-type-def kind='lvalue' type-id='type-id-116' size-in-bits='64' id='type-id-117'/>
+    <reference-type-def kind='rvalue' type-id='type-id-116' size-in-bits='64' id='type-id-118'/>
+    <pointer-type-def type-id='type-id-116' size-in-bits='64' id='type-id-119'/>
+    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-121'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-122'/>
     <qualified-type-def type-id='type-id-122' restrict='yes' id='type-id-123'/>
-    <qualified-type-def type-id='type-id-35' const='yes' id='type-id-124'/>
-    <pointer-type-def type-id='type-id-124' size-in-bits='64' id='type-id-43'/>
-    <qualified-type-def type-id='type-id-56' const='yes' id='type-id-125'/>
-    <reference-type-def kind='lvalue' type-id='type-id-125' size-in-bits='64' id='type-id-126'/>
-    <pointer-type-def type-id='type-id-125' size-in-bits='64' id='type-id-127'/>
-    <qualified-type-def type-id='type-id-60' const='yes' id='type-id-128'/>
-    <reference-type-def kind='lvalue' type-id='type-id-128' size-in-bits='64' id='type-id-129'/>
-    <pointer-type-def type-id='type-id-128' size-in-bits='64' id='type-id-130'/>
-    <qualified-type-def type-id='type-id-63' const='yes' id='type-id-131'/>
-    <reference-type-def kind='lvalue' type-id='type-id-131' size-in-bits='64' id='type-id-132'/>
-    <qualified-type-def type-id='type-id-66' const='yes' id='type-id-133'/>
+    <pointer-type-def type-id='type-id-122' size-in-bits='64' id='type-id-124'/>
+    <qualified-type-def type-id='type-id-124' restrict='yes' id='type-id-125'/>
+    <qualified-type-def type-id='type-id-37' const='yes' id='type-id-126'/>
+    <pointer-type-def type-id='type-id-126' size-in-bits='64' id='type-id-45'/>
+    <qualified-type-def type-id='type-id-58' const='yes' id='type-id-127'/>
+    <reference-type-def kind='lvalue' type-id='type-id-127' size-in-bits='64' id='type-id-128'/>
+    <pointer-type-def type-id='type-id-127' size-in-bits='64' id='type-id-129'/>
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-130'/>
+    <reference-type-def kind='lvalue' type-id='type-id-130' size-in-bits='64' id='type-id-131'/>
+    <pointer-type-def type-id='type-id-130' size-in-bits='64' id='type-id-132'/>
+    <qualified-type-def type-id='type-id-65' const='yes' id='type-id-133'/>
     <reference-type-def kind='lvalue' type-id='type-id-133' size-in-bits='64' id='type-id-134'/>
-    <pointer-type-def type-id='type-id-133' size-in-bits='64' id='type-id-135'/>
-    <qualified-type-def type-id='type-id-70' const='yes' id='type-id-136'/>
-    <pointer-type-def type-id='type-id-136' size-in-bits='64' id='type-id-137'/>
+    <qualified-type-def type-id='type-id-68' const='yes' id='type-id-135'/>
+    <reference-type-def kind='lvalue' type-id='type-id-135' size-in-bits='64' id='type-id-136'/>
+    <pointer-type-def type-id='type-id-135' size-in-bits='64' id='type-id-137'/>
     <qualified-type-def type-id='type-id-72' const='yes' id='type-id-138'/>
     <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-139'/>
     <qualified-type-def type-id='type-id-74' const='yes' id='type-id-140'/>
-    <reference-type-def kind='lvalue' type-id='type-id-140' size-in-bits='64' id='type-id-141'/>
-    <pointer-type-def type-id='type-id-140' size-in-bits='64' id='type-id-142'/>
-    <qualified-type-def type-id='type-id-78' const='yes' id='type-id-143'/>
-    <reference-type-def kind='lvalue' type-id='type-id-143' size-in-bits='64' id='type-id-144'/>
+    <pointer-type-def type-id='type-id-140' size-in-bits='64' id='type-id-141'/>
+    <qualified-type-def type-id='type-id-76' const='yes' id='type-id-142'/>
+    <reference-type-def kind='lvalue' type-id='type-id-142' size-in-bits='64' id='type-id-143'/>
+    <pointer-type-def type-id='type-id-142' size-in-bits='64' id='type-id-144'/>
     <qualified-type-def type-id='type-id-80' const='yes' id='type-id-145'/>
     <reference-type-def kind='lvalue' type-id='type-id-145' size-in-bits='64' id='type-id-146'/>
-    <pointer-type-def type-id='type-id-145' size-in-bits='64' id='type-id-147'/>
-    <qualified-type-def type-id='type-id-83' const='yes' id='type-id-148'/>
-    <reference-type-def kind='lvalue' type-id='type-id-148' size-in-bits='64' id='type-id-149'/>
+    <qualified-type-def type-id='type-id-82' const='yes' id='type-id-147'/>
+    <reference-type-def kind='lvalue' type-id='type-id-147' size-in-bits='64' id='type-id-148'/>
+    <pointer-type-def type-id='type-id-147' size-in-bits='64' id='type-id-149'/>
     <qualified-type-def type-id='type-id-85' const='yes' id='type-id-150'/>
-    <pointer-type-def type-id='type-id-150' size-in-bits='64' id='type-id-151'/>
-    <qualified-type-def type-id='type-id-88' const='yes' id='type-id-152'/>
+    <reference-type-def kind='lvalue' type-id='type-id-150' size-in-bits='64' id='type-id-151'/>
+    <qualified-type-def type-id='type-id-87' const='yes' id='type-id-152'/>
     <pointer-type-def type-id='type-id-152' size-in-bits='64' id='type-id-153'/>
-    <qualified-type-def type-id='type-id-154' const='yes' id='type-id-155'/>
-    <qualified-type-def type-id='type-id-95' const='yes' id='type-id-156'/>
-    <reference-type-def kind='lvalue' type-id='type-id-156' size-in-bits='64' id='type-id-157'/>
-    <pointer-type-def type-id='type-id-156' size-in-bits='64' id='type-id-158'/>
-    <qualified-type-def type-id='type-id-98' const='yes' id='type-id-159'/>
-    <reference-type-def kind='lvalue' type-id='type-id-159' size-in-bits='64' id='type-id-160'/>
-    <pointer-type-def type-id='type-id-159' size-in-bits='64' id='type-id-161'/>
-    <qualified-type-def type-id='type-id-100' const='yes' id='type-id-162'/>
-    <pointer-type-def type-id='type-id-162' size-in-bits='64' id='type-id-163'/>
+    <qualified-type-def type-id='type-id-90' const='yes' id='type-id-154'/>
+    <pointer-type-def type-id='type-id-154' size-in-bits='64' id='type-id-155'/>
+    <qualified-type-def type-id='type-id-156' const='yes' id='type-id-157'/>
+    <qualified-type-def type-id='type-id-97' const='yes' id='type-id-158'/>
+    <reference-type-def kind='lvalue' type-id='type-id-158' size-in-bits='64' id='type-id-159'/>
+    <pointer-type-def type-id='type-id-158' size-in-bits='64' id='type-id-160'/>
+    <qualified-type-def type-id='type-id-100' const='yes' id='type-id-161'/>
+    <reference-type-def kind='lvalue' type-id='type-id-161' size-in-bits='64' id='type-id-162'/>
+    <pointer-type-def type-id='type-id-161' size-in-bits='64' id='type-id-163'/>
     <qualified-type-def type-id='type-id-102' const='yes' id='type-id-164'/>
-    <reference-type-def kind='lvalue' type-id='type-id-164' size-in-bits='64' id='type-id-165'/>
+    <pointer-type-def type-id='type-id-164' size-in-bits='64' id='type-id-165'/>
     <qualified-type-def type-id='type-id-104' const='yes' id='type-id-166'/>
     <reference-type-def kind='lvalue' type-id='type-id-166' size-in-bits='64' id='type-id-167'/>
     <qualified-type-def type-id='type-id-106' const='yes' id='type-id-168'/>
     <reference-type-def kind='lvalue' type-id='type-id-168' size-in-bits='64' id='type-id-169'/>
-    <pointer-type-def type-id='type-id-168' size-in-bits='64' id='type-id-170'/>
-    <qualified-type-def type-id='type-id-171' const='yes' id='type-id-172'/>
-    <reference-type-def kind='lvalue' type-id='type-id-172' size-in-bits='64' id='type-id-173'/>
-    <qualified-type-def type-id='type-id-174' const='yes' id='type-id-175'/>
-    <qualified-type-def type-id='type-id-108' const='yes' id='type-id-176'/>
-    <reference-type-def kind='lvalue' type-id='type-id-176' size-in-bits='64' id='type-id-177'/>
-    <pointer-type-def type-id='type-id-176' size-in-bits='64' id='type-id-178'/>
-    <qualified-type-def type-id='type-id-114' const='yes' id='type-id-179'/>
-    <reference-type-def kind='lvalue' type-id='type-id-179' size-in-bits='64' id='type-id-180'/>
-    <pointer-type-def type-id='type-id-179' size-in-bits='64' id='type-id-181'/>
-    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-182'/>
-    <pointer-type-def type-id='type-id-182' size-in-bits='64' id='type-id-29'/>
-    <qualified-type-def type-id='type-id-29' restrict='yes' id='type-id-183'/>
-    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-184'/>
-    <qualified-type-def type-id='type-id-184' restrict='yes' id='type-id-185'/>
-    <qualified-type-def type-id='type-id-38' const='yes' id='type-id-186'/>
-    <pointer-type-def type-id='type-id-186' size-in-bits='64' id='type-id-187'/>
-    <qualified-type-def type-id='type-id-41' const='yes' id='type-id-188'/>
+    <qualified-type-def type-id='type-id-108' const='yes' id='type-id-170'/>
+    <reference-type-def kind='lvalue' type-id='type-id-170' size-in-bits='64' id='type-id-171'/>
+    <pointer-type-def type-id='type-id-170' size-in-bits='64' id='type-id-172'/>
+    <qualified-type-def type-id='type-id-173' const='yes' id='type-id-174'/>
+    <reference-type-def kind='lvalue' type-id='type-id-174' size-in-bits='64' id='type-id-175'/>
+    <qualified-type-def type-id='type-id-176' const='yes' id='type-id-177'/>
+    <qualified-type-def type-id='type-id-110' const='yes' id='type-id-178'/>
+    <reference-type-def kind='lvalue' type-id='type-id-178' size-in-bits='64' id='type-id-179'/>
+    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-180'/>
+    <qualified-type-def type-id='type-id-116' const='yes' id='type-id-181'/>
+    <reference-type-def kind='lvalue' type-id='type-id-181' size-in-bits='64' id='type-id-182'/>
+    <pointer-type-def type-id='type-id-181' size-in-bits='64' id='type-id-183'/>
+    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-184'/>
+    <pointer-type-def type-id='type-id-184' size-in-bits='64' id='type-id-31'/>
+    <qualified-type-def type-id='type-id-31' restrict='yes' id='type-id-185'/>
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-186'/>
+    <qualified-type-def type-id='type-id-186' restrict='yes' id='type-id-187'/>
+    <qualified-type-def type-id='type-id-40' const='yes' id='type-id-188'/>
     <pointer-type-def type-id='type-id-188' size-in-bits='64' id='type-id-189'/>
-    <qualified-type-def type-id='type-id-190' const='yes' id='type-id-191'/>
-    <reference-type-def kind='lvalue' type-id='type-id-191' size-in-bits='64' id='type-id-192'/>
-    <pointer-type-def type-id='type-id-191' size-in-bits='64' id='type-id-193'/>
-    <qualified-type-def type-id='type-id-194' const='yes' id='type-id-195'/>
-    <reference-type-def kind='lvalue' type-id='type-id-195' size-in-bits='64' id='type-id-196'/>
-    <qualified-type-def type-id='type-id-197' const='yes' id='type-id-198'/>
-    <reference-type-def kind='lvalue' type-id='type-id-198' size-in-bits='64' id='type-id-199'/>
-    <qualified-type-def type-id='type-id-200' const='yes' id='type-id-201'/>
-    <pointer-type-def type-id='type-id-201' size-in-bits='64' id='type-id-202'/>
-    <qualified-type-def type-id='type-id-203' const='yes' id='type-id-204'/>
-    <pointer-type-def type-id='type-id-204' size-in-bits='64' id='type-id-205'/>
-    <qualified-type-def type-id='type-id-206' const='yes' id='type-id-207'/>
-    <reference-type-def kind='lvalue' type-id='type-id-207' size-in-bits='64' id='type-id-208'/>
-    <pointer-type-def type-id='type-id-207' size-in-bits='64' id='type-id-209'/>
-    <qualified-type-def type-id='type-id-210' const='yes' id='type-id-211'/>
-    <reference-type-def kind='lvalue' type-id='type-id-211' size-in-bits='64' id='type-id-212'/>
-    <qualified-type-def type-id='type-id-42' const='yes' id='type-id-213'/>
-    <pointer-type-def type-id='type-id-213' size-in-bits='64' id='type-id-214'/>
-    <qualified-type-def type-id='type-id-28' const='yes' id='type-id-215'/>
+    <qualified-type-def type-id='type-id-43' const='yes' id='type-id-190'/>
+    <pointer-type-def type-id='type-id-190' size-in-bits='64' id='type-id-191'/>
+    <qualified-type-def type-id='type-id-192' const='yes' id='type-id-193'/>
+    <reference-type-def kind='lvalue' type-id='type-id-193' size-in-bits='64' id='type-id-194'/>
+    <pointer-type-def type-id='type-id-193' size-in-bits='64' id='type-id-195'/>
+    <qualified-type-def type-id='type-id-196' const='yes' id='type-id-197'/>
+    <reference-type-def kind='lvalue' type-id='type-id-197' size-in-bits='64' id='type-id-198'/>
+    <qualified-type-def type-id='type-id-199' const='yes' id='type-id-200'/>
+    <reference-type-def kind='lvalue' type-id='type-id-200' size-in-bits='64' id='type-id-201'/>
+    <qualified-type-def type-id='type-id-202' const='yes' id='type-id-203'/>
+    <pointer-type-def type-id='type-id-203' size-in-bits='64' id='type-id-204'/>
+    <qualified-type-def type-id='type-id-205' const='yes' id='type-id-206'/>
+    <pointer-type-def type-id='type-id-206' size-in-bits='64' id='type-id-207'/>
+    <qualified-type-def type-id='type-id-208' const='yes' id='type-id-209'/>
+    <reference-type-def kind='lvalue' type-id='type-id-209' size-in-bits='64' id='type-id-210'/>
+    <pointer-type-def type-id='type-id-209' size-in-bits='64' id='type-id-211'/>
+    <qualified-type-def type-id='type-id-212' const='yes' id='type-id-213'/>
+    <reference-type-def kind='lvalue' type-id='type-id-213' size-in-bits='64' id='type-id-214'/>
+    <qualified-type-def type-id='type-id-44' const='yes' id='type-id-215'/>
     <pointer-type-def type-id='type-id-215' size-in-bits='64' id='type-id-216'/>
-    <qualified-type-def type-id='type-id-216' restrict='yes' id='type-id-217'/>
-    <qualified-type-def type-id='type-id-50' const='yes' id='type-id-218'/>
-    <pointer-type-def type-id='type-id-218' size-in-bits='64' id='type-id-219'/>
-    <qualified-type-def type-id='type-id-219' restrict='yes' id='type-id-220'/>
-    <pointer-type-def type-id='type-id-219' size-in-bits='64' id='type-id-221'/>
+    <qualified-type-def type-id='type-id-30' const='yes' id='type-id-217'/>
+    <pointer-type-def type-id='type-id-217' size-in-bits='64' id='type-id-218'/>
+    <qualified-type-def type-id='type-id-218' restrict='yes' id='type-id-219'/>
+    <qualified-type-def type-id='type-id-52' const='yes' id='type-id-220'/>
+    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-221'/>
     <qualified-type-def type-id='type-id-221' restrict='yes' id='type-id-222'/>
-    <pointer-type-def type-id='type-id-6' size-in-bits='64' id='type-id-223'/>
-    <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-224'/>
-    <qualified-type-def type-id='type-id-224' restrict='yes' id='type-id-225'/>
-    <pointer-type-def type-id='type-id-226' size-in-bits='64' id='type-id-33'/>
-    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-227'/>
-    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-228'/>
-    <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-229'/>
-    <qualified-type-def type-id='type-id-229' restrict='yes' id='type-id-230'/>
-    <pointer-type-def type-id='type-id-200' size-in-bits='64' id='type-id-231'/>
-    <pointer-type-def type-id='type-id-203' size-in-bits='64' id='type-id-232'/>
-    <reference-type-def kind='lvalue' type-id='type-id-206' size-in-bits='64' id='type-id-233'/>
-    <pointer-type-def type-id='type-id-206' size-in-bits='64' id='type-id-234'/>
-    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-235'/>
-    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-236'/>
-    <pointer-type-def type-id='type-id-237' size-in-bits='64' id='type-id-238'/>
-    <pointer-type-def type-id='type-id-50' size-in-bits='64' id='type-id-239'/>
-    <qualified-type-def type-id='type-id-239' restrict='yes' id='type-id-240'/>
-    <pointer-type-def type-id='type-id-239' size-in-bits='64' id='type-id-241'/>
+    <pointer-type-def type-id='type-id-221' size-in-bits='64' id='type-id-223'/>
+    <qualified-type-def type-id='type-id-223' restrict='yes' id='type-id-224'/>
+    <pointer-type-def type-id='type-id-6' size-in-bits='64' id='type-id-225'/>
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-226'/>
+    <qualified-type-def type-id='type-id-226' restrict='yes' id='type-id-227'/>
+    <pointer-type-def type-id='type-id-228' size-in-bits='64' id='type-id-35'/>
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-229'/>
+    <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-230'/>
+    <pointer-type-def type-id='type-id-43' size-in-bits='64' id='type-id-231'/>
+    <qualified-type-def type-id='type-id-231' restrict='yes' id='type-id-232'/>
+    <pointer-type-def type-id='type-id-202' size-in-bits='64' id='type-id-233'/>
+    <pointer-type-def type-id='type-id-205' size-in-bits='64' id='type-id-234'/>
+    <reference-type-def kind='lvalue' type-id='type-id-208' size-in-bits='64' id='type-id-235'/>
+    <pointer-type-def type-id='type-id-208' size-in-bits='64' id='type-id-236'/>
+    <pointer-type-def type-id='type-id-44' size-in-bits='64' id='type-id-237'/>
+    <pointer-type-def type-id='type-id-30' size-in-bits='64' id='type-id-238'/>
+    <pointer-type-def type-id='type-id-239' size-in-bits='64' id='type-id-240'/>
+    <pointer-type-def type-id='type-id-52' size-in-bits='64' id='type-id-241'/>
     <qualified-type-def type-id='type-id-241' restrict='yes' id='type-id-242'/>
-    <qualified-type-def type-id='type-id-243' const='yes' id='type-id-244'/>
-    <reference-type-def kind='lvalue' type-id='type-id-244' size-in-bits='64' id='type-id-245'/>
-    <qualified-type-def type-id='type-id-20' restrict='yes' id='type-id-246'/>
-    <qualified-type-def type-id='type-id-20' restrict='yes' id='type-id-247'/>
+    <pointer-type-def type-id='type-id-241' size-in-bits='64' id='type-id-243'/>
+    <qualified-type-def type-id='type-id-243' restrict='yes' id='type-id-244'/>
+    <qualified-type-def type-id='type-id-245' const='yes' id='type-id-246'/>
+    <reference-type-def kind='lvalue' type-id='type-id-246' size-in-bits='64' id='type-id-247'/>
+    <qualified-type-def type-id='type-id-22' restrict='yes' id='type-id-248'/>
+    <qualified-type-def type-id='type-id-22' restrict='yes' id='type-id-249'/>
     <namespace-decl name='std'>
-      <class-decl name='fpos&lt;__mbstate_t&gt;' size-in-bits='128' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='112' column='1' id='type-id-206'>
+      <class-decl name='fpos&lt;__mbstate_t&gt;' size-in-bits='128' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='112' column='1' id='type-id-208'>
         <data-member access='private' layout-offset-in-bits='0'>
-          <var-decl name='_M_off' type-id='type-id-248' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='115' column='1'/>
+          <var-decl name='_M_off' type-id='type-id-250' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='115' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='64'>
-          <var-decl name='_M_state' type-id='type-id-16' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='116' column='1'/>
+          <var-decl name='_M_state' type-id='type-id-18' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='116' column='1'/>
         </data-member>
         <member-function access='public'>
           <function-decl name='fpos' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-234' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-236' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='fpos' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-234' is-artificial='yes'/>
-            <parameter type-id='type-id-248'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-236' is-artificial='yes'/>
+            <parameter type-id='type-id-250'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
       </class-decl>
-      <class-decl name='ios_base' size-in-bits='1728' visibility='default' id='type-id-250'>
+      <class-decl name='ios_base' size-in-bits='1728' visibility='default' id='type-id-252'>
         <member-type access='private'>
-          <class-decl name='failure' size-in-bits='256' visibility='default' id='type-id-210'/>
+          <class-decl name='failure' size-in-bits='256' visibility='default' id='type-id-212'/>
         </member-type>
         <member-type access='private'>
-          <typedef-decl name='openmode' type-id='type-id-252' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='429' column='1' id='type-id-251'/>
+          <typedef-decl name='openmode' type-id='type-id-254' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='429' column='1' id='type-id-253'/>
         </member-type>
         <member-type access='private'>
-          <typedef-decl name='seekdir' type-id='type-id-254' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='461' column='1' id='type-id-253'/>
+          <typedef-decl name='seekdir' type-id='type-id-256' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='461' column='1' id='type-id-255'/>
         </member-type>
       </class-decl>
-      <class-decl name='system_error' size-in-bits='256' visibility='default' id='type-id-255'/>
-      <enum-decl name='_Ios_Openmode' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='111' column='1' id='type-id-252'>
-        <underlying-type type-id='type-id-48'/>
+      <class-decl name='system_error' size-in-bits='256' visibility='default' id='type-id-257'/>
+      <enum-decl name='_Ios_Openmode' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='111' column='1' id='type-id-254'>
+        <underlying-type type-id='type-id-50'/>
         <enumerator name='_S_app' value='1'/>
         <enumerator name='_S_ate' value='2'/>
         <enumerator name='_S_bin' value='4'/>
@@ -468,82 +469,82 @@ 
         <enumerator name='_S_ios_openmode_max' value='2147483647'/>
         <enumerator name='_S_ios_openmode_min' value='-2147483648'/>
       </enum-decl>
-      <enum-decl name='_Ios_Seekdir' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='193' column='1' id='type-id-254'>
-        <underlying-type type-id='type-id-48'/>
+      <enum-decl name='_Ios_Seekdir' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='193' column='1' id='type-id-256'>
+        <underlying-type type-id='type-id-50'/>
         <enumerator name='_S_beg' value='0'/>
         <enumerator name='_S_cur' value='1'/>
         <enumerator name='_S_end' value='2'/>
         <enumerator name='_S_ios_seekdir_end' value='65536'/>
       </enum-decl>
-      <enum-decl name='io_errc' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='203' column='1' id='type-id-256'>
-        <underlying-type type-id='type-id-48'/>
+      <enum-decl name='io_errc' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/ios_base.h' line='203' column='1' id='type-id-258'>
+        <underlying-type type-id='type-id-50'/>
         <enumerator name='stream' value='1'/>
       </enum-decl>
-      <class-decl name='error_code' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='138' column='1' id='type-id-200'>
+      <class-decl name='error_code' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='138' column='1' id='type-id-202'>
         <data-member access='private' layout-offset-in-bits='0'>
           <var-decl name='_M_value' type-id='type-id-8' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='190' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='64'>
-          <var-decl name='_M_cat' type-id='type-id-193' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='191' column='1'/>
+          <var-decl name='_M_cat' type-id='type-id-195' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='191' column='1'/>
         </data-member>
         <member-function access='public' constructor='yes'>
           <function-decl name='error_code' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-231' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-233' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public' constructor='yes'>
           <function-decl name='error_code' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='143' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-231' is-artificial='yes'/>
+            <parameter type-id='type-id-233' is-artificial='yes'/>
             <parameter type-id='type-id-8'/>
-            <parameter type-id='type-id-192'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-194'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='error_code&lt;std::io_errc, void&gt;' mangled-name='_ZNSt10error_codeC2ISt7io_errcvEET_' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='148' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-231' is-artificial='yes'/>
-            <parameter type-id='type-id-256'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-233' is-artificial='yes'/>
+            <parameter type-id='type-id-258'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
       </class-decl>
-      <class-decl name='error_condition' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='216' column='1' id='type-id-203'>
+      <class-decl name='error_condition' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='216' column='1' id='type-id-205'>
         <data-member access='private' layout-offset-in-bits='0'>
           <var-decl name='_M_value' type-id='type-id-8' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='264' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='64'>
-          <var-decl name='_M_cat' type-id='type-id-193' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='265' column='1'/>
+          <var-decl name='_M_cat' type-id='type-id-195' visibility='default' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='265' column='1'/>
         </data-member>
         <member-function access='public' constructor='yes'>
           <function-decl name='error_condition' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-232' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-234' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public' constructor='yes'>
           <function-decl name='error_condition' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/system_error' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-232' is-artificial='yes'/>
+            <parameter type-id='type-id-234' is-artificial='yes'/>
             <parameter type-id='type-id-8'/>
-            <parameter type-id='type-id-192'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-194'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
       </class-decl>
-      <typedef-decl name='ptrdiff_t' type-id='type-id-10' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/c++config.h' line='197' column='1' id='type-id-257'/>
-      <typedef-decl name='size_t' type-id='type-id-45' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/c++config.h' line='196' column='1' id='type-id-258'/>
-      <typedef-decl name='streamoff' type-id='type-id-10' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='88' column='1' id='type-id-248'/>
-      <typedef-decl name='streampos' type-id='type-id-206' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='228' column='1' id='type-id-259'/>
-      <typedef-decl name='streamsize' type-id='type-id-257' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='98' column='1' id='type-id-260'/>
-      <class-decl name='type_info' visibility='default' is-declaration-only='yes' id='type-id-261'/>
+      <typedef-decl name='ptrdiff_t' type-id='type-id-12' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/c++config.h' line='197' column='1' id='type-id-259'/>
+      <typedef-decl name='size_t' type-id='type-id-47' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/x86_64-linux-gnu/c++/5.4.0/bits/c++config.h' line='196' column='1' id='type-id-260'/>
+      <typedef-decl name='streamoff' type-id='type-id-12' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='88' column='1' id='type-id-250'/>
+      <typedef-decl name='streampos' type-id='type-id-208' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='228' column='1' id='type-id-261'/>
+      <typedef-decl name='streamsize' type-id='type-id-259' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/postypes.h' line='98' column='1' id='type-id-262'/>
+      <class-decl name='type_info' visibility='default' is-declaration-only='yes' id='type-id-263'/>
       <namespace-decl name='_V2'>
-        <class-decl name='error_category' size-in-bits='64' visibility='default' id='type-id-190'/>
+        <class-decl name='error_category' size-in-bits='64' visibility='default' id='type-id-192'/>
       </namespace-decl>
       <namespace-decl name='__cxx11'>
-        <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='256' visibility='default' id='type-id-262'/>
-        <class-decl name='basic_string&lt;wchar_t, std::char_traits&lt;wchar_t&gt;, std::allocator&lt;wchar_t&gt; &gt;' size-in-bits='256' visibility='default' id='type-id-263'/>
-        <typedef-decl name='string' type-id='type-id-262' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stringfwd.h' line='74' column='1' id='type-id-194'/>
-        <typedef-decl name='wstring' type-id='type-id-263' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stringfwd.h' line='78' column='1' id='type-id-197'/>
+        <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='256' visibility='default' id='type-id-264'/>
+        <class-decl name='basic_string&lt;wchar_t, std::char_traits&lt;wchar_t&gt;, std::allocator&lt;wchar_t&gt; &gt;' size-in-bits='256' visibility='default' id='type-id-265'/>
+        <typedef-decl name='string' type-id='type-id-264' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stringfwd.h' line='74' column='1' id='type-id-196'/>
+        <typedef-decl name='wstring' type-id='type-id-265' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stringfwd.h' line='78' column='1' id='type-id-199'/>
       </namespace-decl>
     </namespace-decl>
     <function-decl name='isalnum' filepath='/usr/include/ctype.h' line='110' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -604,147 +605,147 @@ 
     </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-8'/>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-122'/>
     </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-228'/>
+      <return type-id='type-id-230'/>
     </function-decl>
     <function-decl name='remove' filepath='/usr/include/stdio.h' line='178' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='rename' filepath='/usr/include/stdio.h' line='180' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='tmpfile' filepath='/usr/include/stdio.h' line='195' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-51'/>
+      <return type-id='type-id-53'/>
     </function-decl>
     <function-decl name='tmpnam' filepath='/usr/include/stdio.h' line='209' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-120'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-122'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='fclose' filepath='/usr/include/stdio.h' line='237' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fflush' filepath='/usr/include/stdio.h' line='242' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fopen' filepath='/usr/include/stdio.h' line='272' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-183'/>
-      <return type-id='type-id-51'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-185'/>
+      <return type-id='type-id-53'/>
     </function-decl>
     <function-decl name='freopen' filepath='/usr/include/stdio.h' line='278' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-52'/>
-      <return type-id='type-id-51'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-54'/>
+      <return type-id='type-id-53'/>
     </function-decl>
     <function-decl name='setbuf' filepath='/usr/include/stdio.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-121'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-123'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='setvbuf' filepath='/usr/include/stdio.h' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-121'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-123'/>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fprintf' filepath='/usr/include/stdio.h' line='356' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='printf' filepath='/usr/include/stdio.h' line='362' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='sprintf' filepath='/usr/include/stdio.h' line='364' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vfprintf' filepath='/usr/include/stdio.h' line='371' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vprintf' filepath='/usr/include/stdio.h' line='377' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vsprintf' filepath='/usr/include/stdio.h' line='379' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='snprintf' filepath='/usr/include/stdio.h' line='386' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vsnprintf' filepath='/usr/include/stdio.h' line='390' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fscanf' filepath='/usr/include/stdio.h' line='425' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='scanf' filepath='/usr/include/stdio.h' line='431' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='sscanf' filepath='/usr/include/stdio.h' line='433' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-183'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-185'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vfscanf' filepath='/usr/include/stdio.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vscanf' filepath='/usr/include/stdio.h' line='479' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vsscanf' filepath='/usr/include/stdio.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fgetc' filepath='/usr/include/stdio.h' line='531' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='getc' filepath='/usr/include/stdio.h' line='532' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='getchar' filepath='/usr/include/stdio.h' line='538' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -752,12 +753,12 @@ 
     </function-decl>
     <function-decl name='fputc' filepath='/usr/include/stdio.h' line='573' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='putc' filepath='/usr/include/stdio.h' line='574' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='putchar' filepath='/usr/include/stdio.h' line='580' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -765,810 +766,810 @@ 
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fgets' filepath='/usr/include/stdio.h' line='622' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
+      <parameter type-id='type-id-123'/>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-52'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-54'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='fputs' filepath='/usr/include/stdio.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-54'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='puts' filepath='/usr/include/stdio.h' line='695' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='ungetc' filepath='/usr/include/stdio.h' line='702' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fread' filepath='/usr/include/stdio.h' line='709' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-246'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-52'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-54'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='fwrite' filepath='/usr/include/stdio.h' line='715' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-247'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-52'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-249'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-54'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='fseek' filepath='/usr/include/stdio.h' line='749' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
-      <parameter type-id='type-id-10'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-12'/>
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='ftell' filepath='/usr/include/stdio.h' line='754' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-10'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='rewind' filepath='/usr/include/stdio.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='fgetpos' filepath='/usr/include/stdio.h' line='798' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-52'/>
-      <parameter type-id='type-id-225'/>
+      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-227'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fsetpos' filepath='/usr/include/stdio.h' line='803' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
-      <parameter type-id='type-id-187'/>
+      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-189'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='clearerr' filepath='/usr/include/stdio.h' line='826' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='feof' filepath='/usr/include/stdio.h' line='828' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='ferror' filepath='/usr/include/stdio.h' line='830' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-51'/>
+      <parameter type-id='type-id-53'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='perror' filepath='/usr/include/stdio.h' line='846' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='atof' filepath='/usr/include/stdlib.h' line='144' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='atoi' filepath='/usr/include/stdlib.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='atol' filepath='/usr/include/stdlib.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-10'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='atoll' filepath='/usr/include/stdlib.h' line='157' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-11'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='strtod' filepath='/usr/include/stdlib.h' line='164' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='strtof' filepath='/usr/include/stdlib.h' line='172' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='strtold' filepath='/usr/include/stdlib.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='strtol' filepath='/usr/include/stdlib.h' line='183' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-10'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='strtoul' filepath='/usr/include/stdlib.h' line='187' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-45'/>
+      <return type-id='type-id-47'/>
     </function-decl>
     <function-decl name='strtoll' filepath='/usr/include/stdlib.h' line='209' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='strtoull' filepath='/usr/include/stdlib.h' line='214' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-125'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-49'/>
+      <return type-id='type-id-51'/>
     </function-decl>
     <function-decl name='rand' filepath='/usr/include/stdlib.h' line='374' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='srand' filepath='/usr/include/stdlib.h' line='376' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-18'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-20'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='malloc' filepath='/usr/include/stdlib.h' line='466' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='calloc' filepath='/usr/include/stdlib.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='realloc' filepath='/usr/include/stdlib.h' line='480' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='free' filepath='/usr/include/stdlib.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-22'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='abort' filepath='/usr/include/stdlib.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-249'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='atexit' filepath='/usr/include/stdlib.h' line='519' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-238'/>
+      <parameter type-id='type-id-240'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='at_quick_exit' filepath='/usr/include/stdlib.h' line='524' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-238'/>
+      <parameter type-id='type-id-240'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='exit' filepath='/usr/include/stdlib.h' line='543' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-249'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='quick_exit' filepath='/usr/include/stdlib.h' line='549' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-249'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='_Exit' filepath='/usr/include/stdlib.h' line='557' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-249'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='getenv' filepath='/usr/include/stdlib.h' line='564' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='system' filepath='/usr/include/stdlib.h' line='716' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='bsearch' filepath='/usr/include/stdlib.h' line='754' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-34'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-36'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='qsort' filepath='/usr/include/stdlib.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-34'/>
-      <return type-id='type-id-249'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-36'/>
+      <return type-id='type-id-251'/>
     </function-decl>
     <function-decl name='abs' filepath='/usr/include/stdlib.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='labs' filepath='/usr/include/stdlib.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-10'/>
-      <return type-id='type-id-10'/>
+      <parameter type-id='type-id-12'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='llabs' filepath='/usr/include/stdlib.h' line='779' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-11'/>
-      <return type-id='type-id-11'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='div' filepath='/usr/include/stdlib.h' line='788' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-21'/>
+      <return type-id='type-id-23'/>
     </function-decl>
     <function-decl name='ldiv' filepath='/usr/include/stdlib.h' line='790' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-10'/>
-      <parameter type-id='type-id-10'/>
-      <return type-id='type-id-24'/>
+      <parameter type-id='type-id-12'/>
+      <parameter type-id='type-id-12'/>
+      <return type-id='type-id-26'/>
     </function-decl>
     <function-decl name='lldiv' filepath='/usr/include/stdlib.h' line='796' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-11'/>
-      <parameter type-id='type-id-11'/>
-      <return type-id='type-id-26'/>
+      <parameter type-id='type-id-13'/>
+      <parameter type-id='type-id-13'/>
+      <return type-id='type-id-28'/>
     </function-decl>
     <function-decl name='mblen' filepath='/usr/include/stdlib.h' line='862' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='mbtowc' filepath='/usr/include/stdlib.h' line='865' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wctomb' filepath='/usr/include/stdlib.h' line='869' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-120'/>
-      <parameter type-id='type-id-50'/>
+      <parameter type-id='type-id-122'/>
+      <parameter type-id='type-id-52'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='mbstowcs' filepath='/usr/include/stdlib.h' line='873' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcstombs' filepath='/usr/include/stdlib.h' line='876' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='memcpy' filepath='/usr/include/string.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-246'/>
-      <parameter type-id='type-id-247'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-248'/>
+      <parameter type-id='type-id-249'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='memmove' filepath='/usr/include/string.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='memset' filepath='/usr/include/string.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
+      <parameter type-id='type-id-22'/>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='memcmp' filepath='/usr/include/string.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='memchr' filepath='/usr/include/string.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-20'/>
+      <parameter type-id='type-id-22'/>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-20'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-22'/>
     </function-decl>
     <function-decl name='strcpy' filepath='/usr/include/string.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strncpy' filepath='/usr/include/string.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strcat' filepath='/usr/include/string.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strncat' filepath='/usr/include/string.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strcmp' filepath='/usr/include/string.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='strncmp' filepath='/usr/include/string.h' line='143' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='strcoll' filepath='/usr/include/string.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='strxfrm' filepath='/usr/include/string.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='strchr' filepath='/usr/include/string.h' line='231' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-120'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strrchr' filepath='/usr/include/string.h' line='258' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-120'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strcspn' filepath='/usr/include/string.h' line='280' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='strspn' filepath='/usr/include/string.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='strpbrk' filepath='/usr/include/string.h' line='310' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strstr' filepath='/usr/include/string.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-31'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strtok' filepath='/usr/include/string.h' line='343' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-183'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-185'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='strlen' filepath='/usr/include/string.h' line='394' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='strerror' filepath='/usr/include/string.h' line='408' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-120'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='clock' filepath='/usr/include/time.h' line='189' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-37'/>
+      <return type-id='type-id-39'/>
     </function-decl>
     <function-decl name='time' filepath='/usr/include/time.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-235'/>
-      <return type-id='type-id-42'/>
+      <parameter type-id='type-id-237'/>
+      <return type-id='type-id-44'/>
     </function-decl>
     <function-decl name='difftime' filepath='/usr/include/time.h' line='195' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-42'/>
-      <parameter type-id='type-id-42'/>
+      <parameter type-id='type-id-44'/>
+      <parameter type-id='type-id-44'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='mktime' filepath='/usr/include/time.h' line='199' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-236'/>
-      <return type-id='type-id-42'/>
+      <parameter type-id='type-id-238'/>
+      <return type-id='type-id-44'/>
     </function-decl>
     <function-decl name='strftime' filepath='/usr/include/time.h' line='205' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-217'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-219'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='gmtime' filepath='/usr/include/time.h' line='239' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-214'/>
-      <return type-id='type-id-236'/>
+      <parameter type-id='type-id-216'/>
+      <return type-id='type-id-238'/>
     </function-decl>
     <function-decl name='localtime' filepath='/usr/include/time.h' line='243' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-214'/>
-      <return type-id='type-id-236'/>
+      <parameter type-id='type-id-216'/>
+      <return type-id='type-id-238'/>
     </function-decl>
     <function-decl name='asctime' filepath='/usr/include/time.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-216'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-218'/>
+      <return type-id='type-id-122'/>
     </function-decl>
     <function-decl name='ctime' filepath='/usr/include/time.h' line='264' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-214'/>
-      <return type-id='type-id-120'/>
+      <parameter type-id='type-id-216'/>
+      <return type-id='type-id-122'/>
     </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-240'/>
-      <parameter type-id='type-id-220'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcsncpy' filepath='/usr/include/wchar.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcscat' filepath='/usr/include/wchar.h' line='157' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-220'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcsncat' filepath='/usr/include/wchar.h' line='161' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcscmp' filepath='/usr/include/wchar.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wcsncmp' filepath='/usr/include/wchar.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wcscoll' filepath='/usr/include/wchar.h' line='195' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wcsxfrm' filepath='/usr/include/wchar.h' line='199' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcschr' filepath='/usr/include/wchar.h' line='230' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-50'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcsrchr' filepath='/usr/include/wchar.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-50'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcscspn' filepath='/usr/include/wchar.h' line='255' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcsspn' filepath='/usr/include/wchar.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcspbrk' filepath='/usr/include/wchar.h' line='269' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcsstr' filepath='/usr/include/wchar.h' line='280' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcstok' filepath='/usr/include/wchar.h' line='285' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-220'/>
       <parameter type-id='type-id-242'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wcslen' filepath='/usr/include/wchar.h' line='290' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-221'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wmemchr' filepath='/usr/include/wchar.h' line='323' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-50'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wmemcmp' filepath='/usr/include/wchar.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-258'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-260'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wmemcpy' filepath='/usr/include/wchar.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wmemmove' filepath='/usr/include/wchar.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-239'/>
-      <parameter type-id='type-id-219'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-241'/>
+      <parameter type-id='type-id-221'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='wmemset' filepath='/usr/include/wchar.h' line='341' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-239'/>
-      <parameter type-id='type-id-50'/>
-      <parameter type-id='type-id-258'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-241'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-260'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='btowc' filepath='/usr/include/wchar.h' line='356' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-47'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='wctob' filepath='/usr/include/wchar.h' line='360' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='mbsinit' filepath='/usr/include/wchar.h' line='364' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-189'/>
+      <parameter type-id='type-id-191'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='mbrtowc' filepath='/usr/include/wchar.h' line='368' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-230'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-232'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcrtomb' filepath='/usr/include/wchar.h' line='373' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-50'/>
-      <parameter type-id='type-id-230'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-232'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='mbrlen' filepath='/usr/include/wchar.h' line='379' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-183'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-230'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-185'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-232'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='mbsrtowcs' filepath='/usr/include/wchar.h' line='411' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-185'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-230'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-187'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-232'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcsrtombs' filepath='/usr/include/wchar.h' line='417' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-121'/>
-      <parameter type-id='type-id-222'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-230'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-123'/>
+      <parameter type-id='type-id-224'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-232'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='wcstod' filepath='/usr/include/wchar.h' line='453' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='wcstof' filepath='/usr/include/wchar.h' line='460' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='wcstold' filepath='/usr/include/wchar.h' line='462' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wcstol' filepath='/usr/include/wchar.h' line='471' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-10'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='wcstoul' filepath='/usr/include/wchar.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-45'/>
+      <return type-id='type-id-47'/>
     </function-decl>
     <function-decl name='wcstoll' filepath='/usr/include/wchar.h' line='486' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='wcstoull' filepath='/usr/include/wchar.h' line='493' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-244'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-49'/>
+      <return type-id='type-id-51'/>
     </function-decl>
     <function-decl name='fwide' filepath='/usr/include/wchar.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-53'/>
+      <parameter type-id='type-id-55'/>
       <parameter type-id='type-id-8'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='597' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-54'/>
-      <parameter type-id='type-id-220'/>
+      <parameter type-id='type-id-56'/>
+      <parameter type-id='type-id-222'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wprintf' filepath='/usr/include/wchar.h' line='604' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
+      <parameter type-id='type-id-222'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='swprintf' filepath='/usr/include/wchar.h' line='607' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-220'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-222'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vfwprintf' filepath='/usr/include/wchar.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-54'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-56'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vwprintf' filepath='/usr/include/wchar.h' line='623' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vswprintf' filepath='/usr/include/wchar.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='638' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-54'/>
-      <parameter type-id='type-id-220'/>
+      <parameter type-id='type-id-56'/>
+      <parameter type-id='type-id-222'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='wscanf' filepath='/usr/include/wchar.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
+      <parameter type-id='type-id-222'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='swscanf' filepath='/usr/include/wchar.h' line='648' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-220'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-222'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vfwscanf' filepath='/usr/include/wchar.h' line='692' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-54'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-56'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vwscanf' filepath='/usr/include/wchar.h' line='700' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='vswscanf' filepath='/usr/include/wchar.h' line='704' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-55'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-57'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='fgetwc' filepath='/usr/include/wchar.h' line='748' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-55'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='getwc' filepath='/usr/include/wchar.h' line='749' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-55'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='getwchar' filepath='/usr/include/wchar.h' line='755' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-47'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='fputwc' filepath='/usr/include/wchar.h' line='762' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-50'/>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-55'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='putwc' filepath='/usr/include/wchar.h' line='763' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-50'/>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-52'/>
+      <parameter type-id='type-id-55'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='putwchar' filepath='/usr/include/wchar.h' line='769' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-50'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-52'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='fgetws' filepath='/usr/include/wchar.h' line='777' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
+      <parameter type-id='type-id-242'/>
       <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-54'/>
-      <return type-id='type-id-239'/>
+      <parameter type-id='type-id-56'/>
+      <return type-id='type-id-241'/>
     </function-decl>
     <function-decl name='fputws' filepath='/usr/include/wchar.h' line='784' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-54'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-56'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='ungetwc' filepath='/usr/include/wchar.h' line='792' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
+      <parameter type-id='type-id-55'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='wcsftime' filepath='/usr/include/wchar.h' line='858' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-240'/>
-      <parameter type-id='type-id-258'/>
-      <parameter type-id='type-id-220'/>
-      <parameter type-id='type-id-217'/>
-      <return type-id='type-id-258'/>
+      <parameter type-id='type-id-242'/>
+      <parameter type-id='type-id-260'/>
+      <parameter type-id='type-id-222'/>
+      <parameter type-id='type-id-219'/>
+      <return type-id='type-id-260'/>
     </function-decl>
     <function-decl name='iswalnum' filepath='/usr/include/wctype.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswalpha' filepath='/usr/include/wctype.h' line='117' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswcntrl' filepath='/usr/include/wctype.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswdigit' filepath='/usr/include/wctype.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswgraph' filepath='/usr/include/wctype.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswlower' filepath='/usr/include/wctype.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswprint' filepath='/usr/include/wctype.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswpunct' filepath='/usr/include/wctype.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswspace' filepath='/usr/include/wctype.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswupper' filepath='/usr/include/wctype.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswxdigit' filepath='/usr/include/wctype.h' line='156' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='iswblank' filepath='/usr/include/wctype.h' line='162' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
       <return type-id='type-id-8'/>
     </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-29'/>
-      <return type-id='type-id-46'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-48'/>
     </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-47'/>
-      <parameter type-id='type-id-46'/>
+      <parameter type-id='type-id-49'/>
+      <parameter type-id='type-id-48'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='towlower' filepath='/usr/include/wctype.h' line='194' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='towupper' filepath='/usr/include/wctype.h' line='197' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-47'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
+      <return type-id='type-id-49'/>
     </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-29'/>
-      <return type-id='type-id-44'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-46'/>
     </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-47'/>
-      <parameter type-id='type-id-44'/>
-      <return type-id='type-id-47'/>
+      <parameter type-id='type-id-49'/>
+      <parameter type-id='type-id-46'/>
+      <return type-id='type-id-49'/>
     </function-decl>
     <function-decl name='acos' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1620,8 +1621,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='acoshl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='asinh' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1632,8 +1633,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='asinhl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='atanh' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1644,8 +1645,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='atanhl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='exp' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1653,7 +1654,7 @@ 
     </function-decl>
     <function-decl name='frexp' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <parameter type-id='type-id-227'/>
+      <parameter type-id='type-id-229'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='ldexp' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -1671,7 +1672,7 @@ 
     </function-decl>
     <function-decl name='modf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <parameter type-id='type-id-223'/>
+      <parameter type-id='type-id-225'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='expm1' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -1683,8 +1684,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='expm1l' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='log1p' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1695,8 +1696,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='log1pl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='logb' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1707,8 +1708,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='logbl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='exp2' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1719,8 +1720,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='exp2l' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='log2' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='144' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1731,8 +1732,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='log2l' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='144' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='pow' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1754,9 +1755,9 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='hypotl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='162' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='cbrt' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1767,8 +1768,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='cbrtl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='ceil' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='178' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1798,21 +1799,21 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='copysignl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='nan' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='nanf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
+      <parameter type-id='type-id-31'/>
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='nanl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-29'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-31'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='erf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1823,8 +1824,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='erfl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='erfc' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='260' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1835,8 +1836,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='erfcl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='260' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='lgamma' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1847,8 +1848,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='lgammal' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='tgamma' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='268' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1859,8 +1860,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='tgammal' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='268' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='rint' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='289' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1871,8 +1872,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='rintl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='289' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='nextafter' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='292' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1885,24 +1886,24 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='nextafterl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='292' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='nexttoward' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='294' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='nexttowardf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='294' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
-      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='nexttowardl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='294' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='remainder' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='298' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1915,9 +1916,9 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='remainderl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='298' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='scalbn' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='302' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1930,9 +1931,9 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='scalbnl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='302' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
       <parameter type-id='type-id-8'/>
-      <return type-id='type-id-9'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='ilogb' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='306' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1943,23 +1944,23 @@ 
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='ilogbl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='306' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='scalbln' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='311' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <parameter type-id='type-id-10'/>
+      <parameter type-id='type-id-12'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='scalblnf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='311' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
-      <parameter type-id='type-id-10'/>
+      <parameter type-id='type-id-12'/>
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='scalblnl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='311' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-10'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-12'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='nearbyint' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='315' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1970,8 +1971,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='nearbyintl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='315' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='round' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='319' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1982,8 +1983,8 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='roundl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='319' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='trunc' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='323' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -1994,74 +1995,74 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='truncl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='323' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='remquo' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
       <parameter type-id='type-id-6'/>
-      <parameter type-id='type-id-227'/>
+      <parameter type-id='type-id-229'/>
       <return type-id='type-id-6'/>
     </function-decl>
     <function-decl name='remquof' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
       <parameter type-id='type-id-7'/>
-      <parameter type-id='type-id-227'/>
+      <parameter type-id='type-id-229'/>
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='remquol' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-227'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-229'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='lrint' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='335' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <return type-id='type-id-10'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='lrintf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='335' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
-      <return type-id='type-id-10'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='lrintl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='335' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-10'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='llrint' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <return type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='llrintf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
-      <return type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='llrintl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='lround' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='341' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <return type-id='type-id-10'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='lroundf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='341' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
-      <return type-id='type-id-10'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='lroundl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='341' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-10'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='llround' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='343' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
-      <return type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='llroundf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='343' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-7'/>
-      <return type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='llroundl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='343' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='fdim' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='347' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -2074,9 +2075,9 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='fdiml' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='347' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='fmax' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='350' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -2089,9 +2090,9 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='fmaxl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='350' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='fmin' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -2104,9 +2105,9 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='fminl' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='fma' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='366' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-6'/>
@@ -2121,661 +2122,661 @@ 
       <return type-id='type-id-7'/>
     </function-decl>
     <function-decl name='fmal' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='366' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <parameter type-id='type-id-9'/>
-      <return type-id='type-id-9'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <parameter type-id='type-id-11'/>
+      <return type-id='type-id-11'/>
     </function-decl>
     <namespace-decl name='boost'>
-      <class-decl name='exception' size-in-bits='320' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='208' column='1' id='type-id-70'>
+      <class-decl name='exception' size-in-bits='320' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='208' column='1' id='type-id-72'>
         <data-member access='private' layout-offset-in-bits='64'>
-          <var-decl name='data_' type-id='type-id-80' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='269' column='1'/>
+          <var-decl name='data_' type-id='type-id-82' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='269' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='128'>
-          <var-decl name='throw_function_' type-id='type-id-29' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='270' column='1'/>
+          <var-decl name='throw_function_' type-id='type-id-31' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='270' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='192'>
-          <var-decl name='throw_file_' type-id='type-id-29' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='271' column='1'/>
+          <var-decl name='throw_file_' type-id='type-id-31' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='271' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='256'>
           <var-decl name='throw_line_' type-id='type-id-8' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='272' column='1'/>
         </data-member>
         <member-function access='protected' constructor='yes'>
           <function-decl name='exception' mangled-name='_ZN5boost9exceptionC2Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-71' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-73' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='protected' destructor='yes' vtable-offset='0'>
           <function-decl name='~exception' mangled-name='_ZN5boost9exceptionD2Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='237' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-71' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-73' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
       </class-decl>
-      <class-decl name='shared_ptr&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='336' column='1' id='type-id-108'>
+      <class-decl name='shared_ptr&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='336' column='1' id='type-id-110'>
         <member-type access='private'>
-          <typedef-decl name='element_type' type-id='type-id-264' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='345' column='1' id='type-id-112'/>
+          <typedef-decl name='element_type' type-id='type-id-266' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='345' column='1' id='type-id-114'/>
         </member-type>
         <data-member access='private' layout-offset-in-bits='0'>
-          <var-decl name='px' type-id='type-id-113' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='768' column='1'/>
+          <var-decl name='px' type-id='type-id-115' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='768' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='64'>
-          <var-decl name='pn' type-id='type-id-56' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='769' column='1'/>
+          <var-decl name='pn' type-id='type-id-58' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='769' column='1'/>
         </data-member>
         <member-function access='public'>
           <function-decl name='shared_ptr' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='347' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='shared_ptr' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='shared_ptr' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail20file_descriptor_implEEC2ERKS4_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='405' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <parameter type-id='type-id-177'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <parameter type-id='type-id-179'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='shared_ptr' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='608' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <parameter type-id='type-id-110'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <parameter type-id='type-id-112'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public' constructor='yes'>
           <function-decl name='shared_ptr&lt;boost::iostreams::detail::file_descriptor_impl&gt;' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail20file_descriptor_implEEC2IS3_EEPT_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='360' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <parameter type-id='type-id-87'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <parameter type-id='type-id-89'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='operator-&gt;' mangled-name='_ZNK5boost10shared_ptrINS_9iostreams6detail20file_descriptor_implEEptEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='691' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-178' is-artificial='yes'/>
-            <return type-id='type-id-265'/>
+            <parameter type-id='type-id-180' is-artificial='yes'/>
+            <return type-id='type-id-267'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='swap' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail20file_descriptor_implEE4swapERS4_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='724' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <parameter type-id='type-id-109'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <parameter type-id='type-id-111'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='reset&lt;boost::iostreams::detail::file_descriptor_impl&gt;' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail20file_descriptor_implEE5resetIS3_EEvPT_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost10shared_ptrINS_9iostreams6detail20file_descriptor_implEE5resetIS3_EEvPT_'>
-            <parameter type-id='type-id-111' is-artificial='yes'/>
-            <parameter type-id='type-id-87'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-113' is-artificial='yes'/>
+            <parameter type-id='type-id-89'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
       </class-decl>
       <namespace-decl name='detail'>
-        <class-decl name='sp_counted_impl_p&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='53' column='1' id='type-id-63'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-60'/>
+        <class-decl name='sp_counted_impl_p&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='53' column='1' id='type-id-65'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-62'/>
           <data-member access='private' layout-offset-in-bits='128'>
-            <var-decl name='px_' type-id='type-id-87' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='57' column='1'/>
+            <var-decl name='px_' type-id='type-id-89' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='57' column='1'/>
           </data-member>
           <member-function access='private'>
             <function-decl name='sp_counted_impl_p' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-65' is-artificial='yes'/>
-              <parameter type-id='type-id-132'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-67' is-artificial='yes'/>
+              <parameter type-id='type-id-134'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='sp_counted_impl_p' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail20file_descriptor_implEEC2EPS4_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-65' is-artificial='yes'/>
-              <parameter type-id='type-id-87'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-67' is-artificial='yes'/>
+              <parameter type-id='type-id-89'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='2'>
             <function-decl name='dispose' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail20file_descriptor_implEE7disposeEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-65' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-67' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='4'>
             <function-decl name='get_deleter' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail20file_descriptor_implEE11get_deleterERKSt9type_info' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-65' is-artificial='yes'/>
-              <parameter type-id='type-id-245'/>
-              <return type-id='type-id-20'/>
+              <parameter type-id='type-id-67' is-artificial='yes'/>
+              <parameter type-id='type-id-247'/>
+              <return type-id='type-id-22'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='5'>
             <function-decl name='get_untyped_deleter' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail20file_descriptor_implEE19get_untyped_deleterEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-65' is-artificial='yes'/>
-              <return type-id='type-id-20'/>
+              <parameter type-id='type-id-67' is-artificial='yes'/>
+              <return type-id='type-id-22'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='sp_array_access&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='175' column='1' id='type-id-266'>
+        <class-decl name='sp_array_access&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='175' column='1' id='type-id-268'>
         </class-decl>
-        <class-decl name='sp_dereference&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='101' column='1' id='type-id-267'>
+        <class-decl name='sp_dereference&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='101' column='1' id='type-id-269'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-86' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='103' column='1' id='type-id-268'/>
+            <typedef-decl name='type' type-id='type-id-88' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='103' column='1' id='type-id-270'/>
           </member-type>
         </class-decl>
-        <class-decl name='sp_element&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='76' column='1' id='type-id-269'>
+        <class-decl name='sp_element&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='76' column='1' id='type-id-271'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-85' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='78' column='1' id='type-id-264'/>
+            <typedef-decl name='type' type-id='type-id-87' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='78' column='1' id='type-id-266'/>
           </member-type>
         </class-decl>
-        <class-decl name='sp_member_access&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='150' column='1' id='type-id-270'>
+        <class-decl name='sp_member_access&lt;boost::iostreams::detail::file_descriptor_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='150' column='1' id='type-id-272'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-87' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='152' column='1' id='type-id-265'/>
+            <typedef-decl name='type' type-id='type-id-89' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='152' column='1' id='type-id-267'/>
           </member-type>
         </class-decl>
         <function-decl name='sp_enable_shared_from_this' mangled-name='_ZN5boost6detail26sp_enable_shared_from_thisEz' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6detail26sp_enable_shared_from_thisEz'>
           <parameter is-variadic='yes'/>
-          <return type-id='type-id-249'/>
+          <return type-id='type-id-251'/>
         </function-decl>
         <function-decl name='sp_pointer_construct&lt;boost::iostreams::detail::file_descriptor_impl, boost::iostreams::detail::file_descriptor_impl&gt;' mangled-name='_ZN5boost6detail20sp_pointer_constructINS_9iostreams6detail20file_descriptor_implES4_EEvPNS_10shared_ptrIT_EEPT0_RNS0_12shared_countE' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6detail20sp_pointer_constructINS_9iostreams6detail20file_descriptor_implES4_EEvPNS_10shared_ptrIT_EEPT0_RNS0_12shared_countE'>
-          <parameter type-id='type-id-111' name='ppx' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
-          <parameter type-id='type-id-87' name='p' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
-          <parameter type-id='type-id-57' name='pn' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
-          <return type-id='type-id-249'/>
+          <parameter type-id='type-id-113' name='ppx' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
+          <parameter type-id='type-id-89' name='p' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
+          <parameter type-id='type-id-59' name='pn' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
+          <return type-id='type-id-251'/>
         </function-decl>
       </namespace-decl>
       <namespace-decl name='exception_detail'>
-        <class-decl name='clone_base' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='398' column='1' id='type-id-72'>
+        <class-decl name='clone_base' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='398' column='1' id='type-id-74'>
           <member-function access='public' destructor='yes' vtable-offset='0'>
             <function-decl name='~clone_base' mangled-name='_ZN5boost16exception_detail10clone_baseD0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='406' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-73' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-75' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='0'>
             <function-decl name='clone' mangled-name='_ZNK5boost16exception_detail10clone_base5cloneEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='402' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-139' is-artificial='yes'/>
-              <return type-id='type-id-139'/>
+              <parameter type-id='type-id-141' is-artificial='yes'/>
+              <return type-id='type-id-141'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='1'>
             <function-decl name='rethrow' mangled-name='_ZNK5boost16exception_detail10clone_base7rethrowEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='403' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-139' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-141' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='clone_impl&lt;boost::exception_detail::error_info_injector&lt;std::ios_base::failure&gt; &gt;' size-in-bits='640' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='442' column='1' id='type-id-74'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-78'/>
-          <base-class access='public' layout-offset-in-bits='192' is-virtual='yes' type-id='type-id-72'/>
+        <class-decl name='clone_impl&lt;boost::exception_detail::error_info_injector&lt;std::ios_base::failure&gt; &gt;' size-in-bits='640' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='442' column='1' id='type-id-76'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-80'/>
+          <base-class access='public' layout-offset-in-bits='192' is-virtual='yes' type-id='type-id-74'/>
           <member-type access='private'>
-            <class-decl name='clone_tag' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='446' column='1' id='type-id-271'/>
+            <class-decl name='clone_tag' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='446' column='1' id='type-id-273'/>
           </member-type>
           <member-function access='private'>
             <function-decl name='clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEEC1ERKS6_NS6_9clone_tagE' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='447' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-75' is-artificial='yes'/>
-              <parameter type-id='type-id-141'/>
-              <parameter type-id='type-id-271'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-77' is-artificial='yes'/>
+              <parameter type-id='type-id-143'/>
+              <parameter type-id='type-id-273'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEEC1ERKS5_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='456' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-75' is-artificial='yes'/>
-              <parameter type-id='type-id-144'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-77' is-artificial='yes'/>
+              <parameter type-id='type-id-146'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='0'>
             <function-decl name='~clone_impl' mangled-name='_ZN5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEED0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='462' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-75' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-77' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private' vtable-offset='3'>
             <function-decl name='clone' mangled-name='_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEE5cloneEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='469' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-142' is-artificial='yes'/>
-              <return type-id='type-id-139'/>
+              <parameter type-id='type-id-144' is-artificial='yes'/>
+              <return type-id='type-id-141'/>
             </function-decl>
           </member-function>
           <member-function access='private' vtable-offset='4'>
             <function-decl name='rethrow' mangled-name='_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorINSt8ios_base7failureB5cxx11EEEE7rethrowEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='475' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-142' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-144' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='refcount_ptr&lt;boost::exception_detail::error_info_container&gt;' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='23' column='1' id='type-id-80'>
+        <class-decl name='refcount_ptr&lt;boost::exception_detail::error_info_container&gt;' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='23' column='1' id='type-id-82'>
           <data-member access='private' layout-offset-in-bits='0'>
-            <var-decl name='px_' type-id='type-id-77' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='66' column='1'/>
+            <var-decl name='px_' type-id='type-id-79' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='66' column='1'/>
           </data-member>
           <member-function access='public'>
             <function-decl name='refcount_ptr' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes'>
             <function-decl name='~refcount_ptr' mangled-name='_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEED2Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='refcount_ptr' mangled-name='_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEC2ERKS3_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <parameter type-id='type-id-146'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <parameter type-id='type-id-148'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='release' mangled-name='_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7releaseEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='add_ref' mangled-name='_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE7add_refEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='69' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='get' mangled-name='_ZNK5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE3getEv' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-147' is-artificial='yes'/>
-              <return type-id='type-id-77'/>
+              <parameter type-id='type-id-149' is-artificial='yes'/>
+              <return type-id='type-id-79'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='operator=' mangled-name='_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEEaSERKS3_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <parameter type-id='type-id-146'/>
-              <return type-id='type-id-81'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <parameter type-id='type-id-148'/>
+              <return type-id='type-id-83'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='adopt' mangled-name='_ZN5boost16exception_detail12refcount_ptrINS0_20error_info_containerEE5adoptEPS2_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-82' is-artificial='yes'/>
-              <parameter type-id='type-id-77'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-84' is-artificial='yes'/>
+              <parameter type-id='type-id-79'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='error_info_container' size-in-bits='64' is-struct='yes' visibility='default' id='type-id-76'/>
-        <class-decl name='error_info_injector&lt;std::ios_base::failure&gt;' size-in-bits='576' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='326' column='1' id='type-id-78'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-210'/>
-          <base-class access='public' layout-offset-in-bits='256' type-id='type-id-70'/>
+        <class-decl name='error_info_container' size-in-bits='64' is-struct='yes' visibility='default' id='type-id-78'/>
+        <class-decl name='error_info_injector&lt;std::ios_base::failure&gt;' size-in-bits='576' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='326' column='1' id='type-id-80'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-212'/>
+          <base-class access='public' layout-offset-in-bits='256' type-id='type-id-72'/>
           <member-function access='public'>
             <function-decl name='error_info_injector' mangled-name='_ZN5boost16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EEC2ERKS3_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='331' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-79' is-artificial='yes'/>
-              <parameter type-id='type-id-212'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-81' is-artificial='yes'/>
+              <parameter type-id='type-id-214'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='0'>
             <function-decl name='~error_info_injector' mangled-name='_ZN5boost16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EED0Ev' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-79' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-81' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
         <function-decl name='copy_boost_exception' mangled-name='_ZN5boost16exception_detail20copy_boost_exceptionEPNS_9exceptionEPKS1_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost16exception_detail20copy_boost_exceptionEPNS_9exceptionEPKS1_'>
-          <parameter type-id='type-id-71' name='a' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='418' column='1'/>
-          <parameter type-id='type-id-137' name='b' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='418' column='1'/>
-          <return type-id='type-id-249'/>
+          <parameter type-id='type-id-73' name='a' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='418' column='1'/>
+          <parameter type-id='type-id-139' name='b' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='418' column='1'/>
+          <return type-id='type-id-251'/>
         </function-decl>
       </namespace-decl>
       <function-decl name='enable_current_exception&lt;boost::exception_detail::error_info_injector&lt;std::ios_base::failure&gt; &gt;' mangled-name='_ZN5boost24enable_current_exceptionINS_16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EEEEENS1_10clone_implIT_EERKS7_' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost24enable_current_exceptionINS_16exception_detail19error_info_injectorINSt8ios_base7failureB5cxx11EEEEENS1_10clone_implIT_EERKS7_'>
-        <parameter type-id='type-id-144' name='x' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='490' column='1'/>
-        <return type-id='type-id-74'/>
+        <parameter type-id='type-id-146' name='x' filepath='src/third_party/boost-1.60.0/boost/exception/exception.hpp' line='490' column='1'/>
+        <return type-id='type-id-76'/>
       </function-decl>
       <namespace-decl name='iostreams'>
-        <class-decl name='file_descriptor' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='46' column='1' id='type-id-98'>
+        <class-decl name='file_descriptor' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='46' column='1' id='type-id-100'>
           <member-type access='private'>
-            <typedef-decl name='char_type' type-id='type-id-2' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='51' column='1' id='type-id-100'/>
+            <typedef-decl name='char_type' type-id='type-id-2' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='51' column='1' id='type-id-102'/>
           </member-type>
           <member-type access='private'>
-            <typedef-decl name='handle_type' type-id='type-id-273' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='50' column='1' id='type-id-272'/>
+            <typedef-decl name='handle_type' type-id='type-id-275' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='50' column='1' id='type-id-274'/>
           </member-type>
           <data-member access='private' layout-offset-in-bits='0'>
-            <var-decl name='pimpl_' type-id='type-id-108' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='143' column='1'/>
+            <var-decl name='pimpl_' type-id='type-id-110' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='143' column='1'/>
           </data-member>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor' mangled-name='_ZN5boost9iostreams15file_descriptorC2Ev' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptorC2Ev'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor' mangled-name='_ZN5boost9iostreams15file_descriptorC2EiNS0_21file_descriptor_flagsE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptorC2EiNS0_21file_descriptor_flagsE'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-272'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
               <parameter type-id='type-id-274'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-276'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor' mangled-name='_ZN5boost9iostreams15file_descriptorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptorC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-196'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-198'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor' mangled-name='_ZN5boost9iostreams15file_descriptorC2EPKcSt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptorC2EPKcSt13_Ios_Openmode'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-29'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-31'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor' mangled-name='_ZN5boost9iostreams15file_descriptorC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptorC2ERKS1_'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-160'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-162'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams15file_descriptor4openEiNS0_21file_descriptor_flagsE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4openEiNS0_21file_descriptor_flagsE'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-272'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
               <parameter type-id='type-id-274'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-276'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams15file_descriptor4openERKNS0_6detail4pathESt13_Ios_OpenmodeS6_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4openERKNS0_6detail4pathESt13_Ios_OpenmodeS6_'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-157'/>
-              <parameter type-id='type-id-251'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-159'/>
+              <parameter type-id='type-id-253'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams15file_descriptor4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-196'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-198'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams15file_descriptor4openEPKcSt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4openEPKcSt13_Ios_Openmode'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-29'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-31'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='is_open' mangled-name='_ZNK5boost9iostreams15file_descriptor7is_openEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams15file_descriptor7is_openEv'>
-              <parameter type-id='type-id-161' is-artificial='yes'/>
+              <parameter type-id='type-id-163' is-artificial='yes'/>
               <return type-id='type-id-1'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='close' mangled-name='_ZN5boost9iostreams15file_descriptor5closeEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor5closeEv'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='read' mangled-name='_ZN5boost9iostreams15file_descriptor4readEPcl' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4readEPcl'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-101'/>
-              <parameter type-id='type-id-260'/>
-              <return type-id='type-id-260'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-103'/>
+              <parameter type-id='type-id-262'/>
+              <return type-id='type-id-262'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='write' mangled-name='_ZN5boost9iostreams15file_descriptor5writeEPKcl' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor5writeEPKcl'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-163'/>
-              <parameter type-id='type-id-260'/>
-              <return type-id='type-id-260'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-165'/>
+              <parameter type-id='type-id-262'/>
+              <return type-id='type-id-262'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='seek' mangled-name='_ZN5boost9iostreams15file_descriptor4seekElSt12_Ios_Seekdir' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4seekElSt12_Ios_Seekdir'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <parameter type-id='type-id-275'/>
-              <parameter type-id='type-id-253'/>
-              <return type-id='type-id-259'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <parameter type-id='type-id-277'/>
+              <parameter type-id='type-id-255'/>
+              <return type-id='type-id-261'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='handle' mangled-name='_ZNK5boost9iostreams15file_descriptor6handleEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams15file_descriptor6handleEv'>
-              <parameter type-id='type-id-161' is-artificial='yes'/>
-              <return type-id='type-id-272'/>
+              <parameter type-id='type-id-163' is-artificial='yes'/>
+              <return type-id='type-id-274'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='init' mangled-name='_ZN5boost9iostreams15file_descriptor4initEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams15file_descriptor4initEv'>
-              <parameter type-id='type-id-99' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-101' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='file_descriptor_sink' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='228' column='1' id='type-id-102'>
-          <base-class access='private' layout-offset-in-bits='0' type-id='type-id-98'/>
+        <class-decl name='file_descriptor_sink' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='228' column='1' id='type-id-104'>
+          <base-class access='private' layout-offset-in-bits='0' type-id='type-id-100'/>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_sink' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='248' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_sink' mangled-name='_ZN5boost9iostreams20file_descriptor_sinkC2EiNS0_21file_descriptor_flagsE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sinkC2EiNS0_21file_descriptor_flagsE'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-278'/>
               <parameter type-id='type-id-276'/>
-              <parameter type-id='type-id-274'/>
-              <return type-id='type-id-249'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_sink' mangled-name='_ZN5boost9iostreams20file_descriptor_sinkC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sinkC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <parameter type-id='type-id-196'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-198'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_sink' mangled-name='_ZN5boost9iostreams20file_descriptor_sinkC2EPKcSt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sinkC2EPKcSt13_Ios_Openmode'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <parameter type-id='type-id-29'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-31'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_sink' mangled-name='_ZN5boost9iostreams20file_descriptor_sinkC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sinkC2ERKS1_'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <parameter type-id='type-id-165'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-167'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams20file_descriptor_sink4openEiNS0_21file_descriptor_flagsE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sink4openEiNS0_21file_descriptor_flagsE'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-278'/>
               <parameter type-id='type-id-276'/>
-              <parameter type-id='type-id-274'/>
-              <return type-id='type-id-249'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams20file_descriptor_sink4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sink4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <parameter type-id='type-id-196'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-198'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams20file_descriptor_sink4openERKNS0_6detail4pathESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sink4openERKNS0_6detail4pathESt13_Ios_Openmode'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <parameter type-id='type-id-157'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-159'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams20file_descriptor_sink4openEPKcSt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams20file_descriptor_sink4openEPKcSt13_Ios_Openmode'>
-              <parameter type-id='type-id-103' is-artificial='yes'/>
-              <parameter type-id='type-id-29'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-31'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='file_descriptor_source' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='146' column='1' id='type-id-104'>
-          <base-class access='private' layout-offset-in-bits='0' type-id='type-id-98'/>
+        <class-decl name='file_descriptor_source' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='146' column='1' id='type-id-106'>
+          <base-class access='private' layout-offset-in-bits='0' type-id='type-id-100'/>
           <member-type access='private'>
-            <typedef-decl name='handle_type' type-id='type-id-8' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='151' column='1' id='type-id-276'/>
+            <typedef-decl name='handle_type' type-id='type-id-8' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='151' column='1' id='type-id-278'/>
           </member-type>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_source' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_source' mangled-name='_ZN5boost9iostreams22file_descriptor_sourceC2EiNS0_21file_descriptor_flagsE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_sourceC2EiNS0_21file_descriptor_flagsE'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-278'/>
               <parameter type-id='type-id-276'/>
-              <parameter type-id='type-id-274'/>
-              <return type-id='type-id-249'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_source' mangled-name='_ZN5boost9iostreams22file_descriptor_sourceC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_sourceC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <parameter type-id='type-id-196'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-198'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_source' mangled-name='_ZN5boost9iostreams22file_descriptor_sourceC2EPKcSt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_sourceC2EPKcSt13_Ios_Openmode'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <parameter type-id='type-id-29'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-31'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='file_descriptor_source' mangled-name='_ZN5boost9iostreams22file_descriptor_sourceC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_sourceC2ERKS1_'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <parameter type-id='type-id-167'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-169'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams22file_descriptor_source4openEiNS0_21file_descriptor_flagsE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_source4openEiNS0_21file_descriptor_flagsE'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-278'/>
               <parameter type-id='type-id-276'/>
-              <parameter type-id='type-id-274'/>
-              <return type-id='type-id-249'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams22file_descriptor_source4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_source4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt13_Ios_Openmode'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <parameter type-id='type-id-196'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-198'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams22file_descriptor_source4openERKNS0_6detail4pathESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_source4openERKNS0_6detail4pathESt13_Ios_Openmode'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <parameter type-id='type-id-157'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-159'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='open' mangled-name='_ZN5boost9iostreams22file_descriptor_source4openEPKcSt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams22file_descriptor_source4openEPKcSt13_Ios_Openmode'>
-              <parameter type-id='type-id-105' is-artificial='yes'/>
-              <parameter type-id='type-id-29'/>
-              <parameter type-id='type-id-251'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-107' is-artificial='yes'/>
+              <parameter type-id='type-id-31'/>
+              <parameter type-id='type-id-253'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <enum-decl name='file_descriptor_flags' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='40' column='1' id='type-id-274'>
-          <underlying-type type-id='type-id-48'/>
+        <enum-decl name='file_descriptor_flags' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/file_descriptor.hpp' line='40' column='1' id='type-id-276'>
+          <underlying-type type-id='type-id-50'/>
           <enumerator name='never_close_handle' value='0'/>
           <enumerator name='close_handle' value='3'/>
         </enum-decl>
-        <typedef-decl name='stream_offset' type-id='type-id-40' filepath='src/third_party/boost-1.60.0/boost/iostreams/positioning.hpp' line='36' column='1' id='type-id-275'/>
+        <typedef-decl name='stream_offset' type-id='type-id-42' filepath='src/third_party/boost-1.60.0/boost/iostreams/positioning.hpp' line='36' column='1' id='type-id-277'/>
         <namespace-decl name='detail'>
-          <class-decl name='path' size-in-bits='576' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='37' column='1' id='type-id-95'>
+          <class-decl name='path' size-in-bits='576' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='37' column='1' id='type-id-97'>
             <data-member access='private' layout-offset-in-bits='0'>
-              <var-decl name='narrow_' type-id='type-id-194' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='155' column='1'/>
+              <var-decl name='narrow_' type-id='type-id-196' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='155' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='256'>
-              <var-decl name='wide_' type-id='type-id-197' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='156' column='1'/>
+              <var-decl name='wide_' type-id='type-id-199' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='156' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='512'>
               <var-decl name='is_wide_' type-id='type-id-1' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='157' column='1'/>
             </data-member>
             <member-function access='public' constructor='yes'>
               <function-decl name='path' mangled-name='_ZN5boost9iostreams6detail4pathC2Ev' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-97' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-99' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' constructor='yes'>
               <function-decl name='path' mangled-name='_ZN5boost9iostreams6detail4pathC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-97' is-artificial='yes'/>
-                <parameter type-id='type-id-196'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-99' is-artificial='yes'/>
+                <parameter type-id='type-id-198'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' constructor='yes'>
               <function-decl name='path' mangled-name='_ZN5boost9iostreams6detail4pathC2EPKc' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-97' is-artificial='yes'/>
-                <parameter type-id='type-id-29'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-99' is-artificial='yes'/>
+                <parameter type-id='type-id-31'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' constructor='yes'>
               <function-decl name='path' mangled-name='_ZN5boost9iostreams6detail4pathC2ERKS2_' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-97' is-artificial='yes'/>
-                <parameter type-id='type-id-157'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-99' is-artificial='yes'/>
+                <parameter type-id='type-id-159'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private' constructor='yes'>
               <function-decl name='path' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='138' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-97' is-artificial='yes'/>
-                <parameter type-id='type-id-199'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-99' is-artificial='yes'/>
+                <parameter type-id='type-id-201'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='c_str' mangled-name='_ZNK5boost9iostreams6detail4path5c_strEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-158' is-artificial='yes'/>
-                <return type-id='type-id-29'/>
+                <parameter type-id='type-id-160' is-artificial='yes'/>
+                <return type-id='type-id-31'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='operator=' mangled-name='_ZN5boost9iostreams6detail4pathaSERKS2_' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/path.hpp' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-97' is-artificial='yes'/>
-                <parameter type-id='type-id-157'/>
-                <return type-id='type-id-96'/>
+                <parameter type-id='type-id-99' is-artificial='yes'/>
+                <parameter type-id='type-id-159'/>
+                <return type-id='type-id-98'/>
               </function-decl>
             </member-function>
           </class-decl>
-          <class-decl name='file_descriptor_impl' size-in-bits='64' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='50' column='1' id='type-id-85'>
+          <class-decl name='file_descriptor_impl' size-in-bits='64' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='50' column='1' id='type-id-87'>
             <member-type access='public'>
-              <enum-decl name='flags' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='52' column='1' id='type-id-277'>
-                <underlying-type type-id='type-id-48'/>
+              <enum-decl name='flags' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='52' column='1' id='type-id-279'>
+                <underlying-type type-id='type-id-50'/>
                 <enumerator name='never_close' value='0'/>
                 <enumerator name='close_on_exit' value='1'/>
                 <enumerator name='close_on_close' value='2'/>
@@ -2783,568 +2784,574 @@ 
               </enum-decl>
             </member-type>
             <data-member access='public' layout-offset-in-bits='0'>
-              <var-decl name='handle_' type-id='type-id-273' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='73' column='1'/>
+              <var-decl name='handle_' type-id='type-id-275' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='73' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='32'>
               <var-decl name='flags_' type-id='type-id-8' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='74' column='1'/>
             </data-member>
             <member-function access='public' constructor='yes'>
               <function-decl name='file_descriptor_impl' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_implC2Ev' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_implC2Ev'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' destructor='yes'>
               <function-decl name='~file_descriptor_impl' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_implD2Ev' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_implD2Ev'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' static='yes'>
               <function-decl name='invalid_handle' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl14invalid_handleEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl14invalid_handleEv'>
-                <return type-id='type-id-273'/>
+                <return type-id='type-id-275'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='close_impl' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl10close_implEbb' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl10close_implEbb'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
                 <parameter type-id='type-id-1'/>
                 <parameter type-id='type-id-1'/>
-                <return type-id='type-id-249'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='close' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl5closeEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl5closeEv'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='open' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl4openEiNS2_5flagsE' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl4openEiNS2_5flagsE'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <parameter type-id='type-id-273'/>
-                <parameter type-id='type-id-277'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <parameter type-id='type-id-275'/>
+                <parameter type-id='type-id-279'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='open' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl4openERKNS1_4pathESt13_Ios_Openmode' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl4openERKNS1_4pathESt13_Ios_Openmode'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <parameter type-id='type-id-157'/>
-                <parameter type-id='type-id-251'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <parameter type-id='type-id-159'/>
+                <parameter type-id='type-id-253'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='is_open' mangled-name='_ZNK5boost9iostreams6detail20file_descriptor_impl7is_openEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams6detail20file_descriptor_impl7is_openEv'>
-                <parameter type-id='type-id-151' is-artificial='yes'/>
+                <parameter type-id='type-id-153' is-artificial='yes'/>
                 <return type-id='type-id-1'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='read' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl4readEPcl' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl4readEPcl'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <parameter type-id='type-id-120'/>
-                <parameter type-id='type-id-260'/>
-                <return type-id='type-id-260'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <parameter type-id='type-id-122'/>
+                <parameter type-id='type-id-262'/>
+                <return type-id='type-id-262'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='write' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl5writeEPKcl' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl5writeEPKcl'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <parameter type-id='type-id-29'/>
-                <parameter type-id='type-id-260'/>
-                <return type-id='type-id-260'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <parameter type-id='type-id-31'/>
+                <parameter type-id='type-id-262'/>
+                <return type-id='type-id-262'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='seek' mangled-name='_ZN5boost9iostreams6detail20file_descriptor_impl4seekElSt12_Ios_Seekdir' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/file_descriptor.cpp' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail20file_descriptor_impl4seekElSt12_Ios_Seekdir'>
-                <parameter type-id='type-id-87' is-artificial='yes'/>
-                <parameter type-id='type-id-275'/>
-                <parameter type-id='type-id-253'/>
-                <return type-id='type-id-259'/>
+                <parameter type-id='type-id-89' is-artificial='yes'/>
+                <parameter type-id='type-id-277'/>
+                <parameter type-id='type-id-255'/>
+                <return type-id='type-id-261'/>
               </function-decl>
             </member-function>
           </class-decl>
-          <typedef-decl name='file_handle' type-id='type-id-8' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/file_handle.hpp' line='27' column='1' id='type-id-273'/>
+          <typedef-decl name='file_handle' type-id='type-id-8' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/file_handle.hpp' line='27' column='1' id='type-id-275'/>
           <function-decl name='system_failure' mangled-name='_ZN5boost9iostreams6detail14system_failureB5cxx11EPKc' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/system_failure.hpp' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail14system_failureB5cxx11EPKc'>
-            <parameter type-id='type-id-29' name='msg' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/system_failure.hpp' line='39' column='1'/>
-            <return type-id='type-id-210'/>
+            <parameter type-id='type-id-31' name='msg' filepath='src/third_party/boost-1.60.0/boost/iostreams/detail/system_failure.hpp' line='39' column='1'/>
+            <return type-id='type-id-212'/>
           </function-decl>
         </namespace-decl>
       </namespace-decl>
       <function-decl name='throw_exception&lt;std::ios_base::failure&gt;' mangled-name='_ZN5boost15throw_exceptionINSt8ios_base7failureB5cxx11EEEvRKT_' filepath='src/third_party/boost-1.60.0/boost/throw_exception.hpp' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost15throw_exceptionINSt8ios_base7failureB5cxx11EEEvRKT_'>
-        <parameter type-id='type-id-212' name='e' filepath='src/third_party/boost-1.60.0/boost/throw_exception.hpp' line='62' column='1'/>
-        <return type-id='type-id-249'/>
+        <parameter type-id='type-id-214' name='e' filepath='src/third_party/boost-1.60.0/boost/throw_exception.hpp' line='62' column='1'/>
+        <return type-id='type-id-251'/>
       </function-decl>
     </namespace-decl>
     <namespace-decl name='boost'>
-      <class-decl name='shared_ptr&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='336' column='1' id='type-id-114'>
+      <class-decl name='shared_ptr&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='336' column='1' id='type-id-116'>
         <member-type access='private'>
-          <typedef-decl name='element_type' type-id='type-id-278' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='345' column='1' id='type-id-118'/>
+          <typedef-decl name='element_type' type-id='type-id-280' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='345' column='1' id='type-id-120'/>
         </member-type>
         <data-member access='private' layout-offset-in-bits='0'>
-          <var-decl name='px' type-id='type-id-119' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='768' column='1'/>
+          <var-decl name='px' type-id='type-id-121' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='768' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='64'>
-          <var-decl name='pn' type-id='type-id-56' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='769' column='1'/>
+          <var-decl name='pn' type-id='type-id-58' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='769' column='1'/>
         </data-member>
         <member-function access='public'>
           <function-decl name='shared_ptr' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='347' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='shared_ptr' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='shared_ptr' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail16mapped_file_implEEC2ERKS4_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='405' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <parameter type-id='type-id-180'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <parameter type-id='type-id-182'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='shared_ptr' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='608' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <parameter type-id='type-id-116'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <parameter type-id='type-id-118'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public' constructor='yes'>
           <function-decl name='shared_ptr&lt;boost::iostreams::detail::mapped_file_impl&gt;' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail16mapped_file_implEEC2IS3_EEPT_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='360' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <parameter type-id='type-id-90'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <parameter type-id='type-id-92'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='operator-&gt;' mangled-name='_ZNK5boost10shared_ptrINS_9iostreams6detail16mapped_file_implEEptEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='691' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-181' is-artificial='yes'/>
-            <return type-id='type-id-279'/>
+            <parameter type-id='type-id-183' is-artificial='yes'/>
+            <return type-id='type-id-281'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='swap' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail16mapped_file_implEE4swapERS4_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='724' column='1' visibility='default' binding='global' size-in-bits='64'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <parameter type-id='type-id-115'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <parameter type-id='type-id-117'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
         <member-function access='public'>
           <function-decl name='reset&lt;boost::iostreams::detail::mapped_file_impl&gt;' mangled-name='_ZN5boost10shared_ptrINS_9iostreams6detail16mapped_file_implEE5resetIS3_EEvPT_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost10shared_ptrINS_9iostreams6detail16mapped_file_implEE5resetIS3_EEvPT_'>
-            <parameter type-id='type-id-117' is-artificial='yes'/>
-            <parameter type-id='type-id-90'/>
-            <return type-id='type-id-249'/>
+            <parameter type-id='type-id-119' is-artificial='yes'/>
+            <parameter type-id='type-id-92'/>
+            <return type-id='type-id-251'/>
           </function-decl>
         </member-function>
       </class-decl>
       <namespace-decl name='core'>
-        <typedef-decl name='typeinfo' type-id='type-id-261' filepath='src/third_party/boost-1.60.0/boost/core/typeinfo.hpp' line='134' column='1' id='type-id-280'/>
+        <typedef-decl name='typeinfo' type-id='type-id-263' filepath='src/third_party/boost-1.60.0/boost/core/typeinfo.hpp' line='134' column='1' id='type-id-282'/>
       </namespace-decl>
       <namespace-decl name='detail'>
-        <class-decl name='shared_count' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='107' column='1' id='type-id-56'>
+        <class-decl name='shared_count' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='107' column='1' id='type-id-58'>
           <data-member access='private' layout-offset-in-bits='0'>
-            <var-decl name='pi_' type-id='type-id-62' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='111' column='1'/>
+            <var-decl name='pi_' type-id='type-id-64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='111' column='1'/>
           </data-member>
           <member-function access='public' constructor='yes'>
             <function-decl name='shared_count' mangled-name='_ZN5boost6detail12shared_countC2Ev' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='121' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes'>
             <function-decl name='~shared_count' mangled-name='_ZN5boost6detail12shared_countD2Ev' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='471' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='shared_count' mangled-name='_ZN5boost6detail12shared_countC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='479' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-126'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-128'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='shared_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='489' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-58'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-60'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='shared_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='499' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-134'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-136'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='shared_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='500' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-134'/>
-              <parameter type-id='type-id-281'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-136'/>
+              <parameter type-id='type-id-283'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='shared_count&lt;boost::iostreams::detail::file_descriptor_impl&gt;' mangled-name='_ZN5boost6detail12shared_countC2INS_9iostreams6detail20file_descriptor_implEEEPT_' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/move.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-87'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-89'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='shared_count&lt;boost::iostreams::detail::mapped_file_impl&gt;' mangled-name='_ZN5boost6detail12shared_countC2INS_9iostreams6detail16mapped_file_implEEEPT_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-90'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-92'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='swap' mangled-name='_ZN5boost6detail12shared_count4swapERS1_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='516' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-59' is-artificial='yes'/>
-              <parameter type-id='type-id-57'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-61' is-artificial='yes'/>
+              <parameter type-id='type-id-59'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='sp_counted_base' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='61' column='1' id='type-id-60'>
+        <class-decl name='sp_counted_base' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='61' column='1' id='type-id-62'>
           <data-member access='private' layout-offset-in-bits='64'>
-            <var-decl name='use_count_' type-id='type-id-282' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='68' column='1'/>
+            <var-decl name='use_count_' type-id='type-id-284' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='68' column='1'/>
           </data-member>
           <data-member access='private' layout-offset-in-bits='96'>
-            <var-decl name='weak_count_' type-id='type-id-282' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='69' column='1'/>
+            <var-decl name='weak_count_' type-id='type-id-284' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='69' column='1'/>
           </data-member>
           <member-function access='private' constructor='yes'>
             <function-decl name='sp_counted_base' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <parameter type-id='type-id-129'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <parameter type-id='type-id-131'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='sp_counted_base' mangled-name='_ZN5boost6detail15sp_counted_baseC2Ev' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='release' mangled-name='_ZN5boost6detail15sp_counted_base7releaseEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='weak_release' mangled-name='_ZN5boost6detail15sp_counted_base12weak_releaseEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='add_ref_copy' mangled-name='_ZN5boost6detail15sp_counted_base12add_ref_copyEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='98' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='0'>
             <function-decl name='~sp_counted_base' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='2'>
             <function-decl name='dispose' mangled-name='_ZN5boost6detail15sp_counted_base7disposeEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='3'>
             <function-decl name='destroy' mangled-name='_ZN5boost6detail15sp_counted_base7destroyEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='4'>
             <function-decl name='get_deleter' mangled-name='_ZN5boost6detail15sp_counted_base11get_deleterERKSt9type_info' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='95' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <parameter type-id='type-id-245'/>
-              <return type-id='type-id-20'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <parameter type-id='type-id-247'/>
+              <return type-id='type-id-22'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='5'>
             <function-decl name='get_untyped_deleter' mangled-name='_ZN5boost6detail15sp_counted_base19get_untyped_deleterEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='96' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-62' is-artificial='yes'/>
-              <return type-id='type-id-20'/>
+              <parameter type-id='type-id-64' is-artificial='yes'/>
+              <return type-id='type-id-22'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='sp_counted_impl_p&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='53' column='1' id='type-id-283'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-60'/>
+        <class-decl name='sp_counted_impl_p&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='53' column='1' id='type-id-285'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-62'/>
           <data-member access='private' layout-offset-in-bits='128'>
-            <var-decl name='px_' type-id='type-id-90' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='57' column='1'/>
+            <var-decl name='px_' type-id='type-id-92' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='57' column='1'/>
           </data-member>
           <member-function access='private'>
             <function-decl name='sp_counted_impl_p' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-284' is-artificial='yes'/>
-              <parameter type-id='type-id-285'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-286' is-artificial='yes'/>
+              <parameter type-id='type-id-287'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='sp_counted_impl_p' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail16mapped_file_implEEC2EPS4_' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-284' is-artificial='yes'/>
-              <parameter type-id='type-id-90'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-286' is-artificial='yes'/>
+              <parameter type-id='type-id-92'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='2'>
             <function-decl name='dispose' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail16mapped_file_implEE7disposeEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-284' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-286' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='4'>
             <function-decl name='get_deleter' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail16mapped_file_implEE11get_deleterERKSt9type_info' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-284' is-artificial='yes'/>
-              <parameter type-id='type-id-245'/>
-              <return type-id='type-id-20'/>
+              <parameter type-id='type-id-286' is-artificial='yes'/>
+              <parameter type-id='type-id-247'/>
+              <return type-id='type-id-22'/>
             </function-decl>
           </member-function>
           <member-function access='public' vtable-offset='5'>
             <function-decl name='get_untyped_deleter' mangled-name='_ZN5boost6detail17sp_counted_impl_pINS_9iostreams6detail16mapped_file_implEE19get_untyped_deleterEv' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_impl.hpp' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-284' is-artificial='yes'/>
-              <return type-id='type-id-20'/>
+              <parameter type-id='type-id-286' is-artificial='yes'/>
+              <return type-id='type-id-22'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='weak_count' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='560' column='1' id='type-id-66'>
+        <class-decl name='weak_count' size-in-bits='64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='560' column='1' id='type-id-68'>
           <data-member access='private' layout-offset-in-bits='0'>
-            <var-decl name='pi_' type-id='type-id-62' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='564' column='1'/>
+            <var-decl name='pi_' type-id='type-id-64' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='564' column='1'/>
           </data-member>
           <member-function access='public' constructor='yes'>
             <function-decl name='weak_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='574' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-69' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-71' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='weak_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='581' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-69' is-artificial='yes'/>
-              <parameter type-id='type-id-126'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-71' is-artificial='yes'/>
+              <parameter type-id='type-id-128'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='weak_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='589' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-69' is-artificial='yes'/>
-              <parameter type-id='type-id-134'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-71' is-artificial='yes'/>
+              <parameter type-id='type-id-136'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='weak_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='601' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-69' is-artificial='yes'/>
-              <parameter type-id='type-id-68'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-71' is-artificial='yes'/>
+              <parameter type-id='type-id-70'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes'>
             <function-decl name='~weak_count' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='611' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-69' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-71' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='sp_array_access&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='175' column='1' id='type-id-286'>
+        <class-decl name='sp_array_access&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='175' column='1' id='type-id-288'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-249' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='177' column='1' id='type-id-287'/>
+            <typedef-decl name='type' type-id='type-id-251' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='177' column='1' id='type-id-289'/>
           </member-type>
         </class-decl>
-        <class-decl name='sp_dereference&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='101' column='1' id='type-id-288'>
+        <class-decl name='sp_dereference&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='101' column='1' id='type-id-290'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-89' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='103' column='1' id='type-id-289'/>
+            <typedef-decl name='type' type-id='type-id-91' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='103' column='1' id='type-id-291'/>
           </member-type>
         </class-decl>
-        <class-decl name='sp_element&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='76' column='1' id='type-id-290'>
+        <class-decl name='sp_element&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='76' column='1' id='type-id-292'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-88' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='78' column='1' id='type-id-278'/>
+            <typedef-decl name='type' type-id='type-id-90' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='78' column='1' id='type-id-280'/>
           </member-type>
         </class-decl>
-        <class-decl name='sp_member_access&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='150' column='1' id='type-id-291'>
+        <class-decl name='sp_member_access&lt;boost::iostreams::detail::mapped_file_impl&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='150' column='1' id='type-id-293'>
           <member-type access='public'>
-            <typedef-decl name='type' type-id='type-id-90' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='152' column='1' id='type-id-279'/>
+            <typedef-decl name='type' type-id='type-id-92' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='152' column='1' id='type-id-281'/>
           </member-type>
         </class-decl>
-        <class-decl name='sp_nothrow_tag' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='71' column='1' id='type-id-281'/>
-        <typedef-decl name='atomic_int_least32_t' type-id='type-id-39' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='27' column='1' id='type-id-282'/>
-        <typedef-decl name='sp_typeinfo' type-id='type-id-280' filepath='src/third_party/boost-1.60.0/boost/detail/sp_typeinfo.hpp' line='28' column='1' id='type-id-243'/>
+        <class-decl name='sp_nothrow_tag' size-in-bits='8' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/shared_count.hpp' line='71' column='1' id='type-id-283'/>
+        <typedef-decl name='atomic_int_least32_t' type-id='type-id-41' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/detail/sp_counted_base_clang.hpp' line='27' column='1' id='type-id-284'/>
+        <typedef-decl name='sp_typeinfo' type-id='type-id-282' filepath='src/third_party/boost-1.60.0/boost/detail/sp_typeinfo.hpp' line='28' column='1' id='type-id-245'/>
         <function-decl name='sp_pointer_construct&lt;boost::iostreams::detail::mapped_file_impl, boost::iostreams::detail::mapped_file_impl&gt;' mangled-name='_ZN5boost6detail20sp_pointer_constructINS_9iostreams6detail16mapped_file_implES4_EEvPNS_10shared_ptrIT_EEPT0_RNS0_12shared_countE' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6detail20sp_pointer_constructINS_9iostreams6detail16mapped_file_implES4_EEvPNS_10shared_ptrIT_EEPT0_RNS0_12shared_countE'>
-          <parameter type-id='type-id-117' name='ppx' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
-          <parameter type-id='type-id-90' name='p' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
-          <parameter type-id='type-id-57' name='pn' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
-          <return type-id='type-id-249'/>
+          <parameter type-id='type-id-119' name='ppx' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
+          <parameter type-id='type-id-92' name='p' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
+          <parameter type-id='type-id-59' name='pn' filepath='src/third_party/boost-1.60.0/boost/smart_ptr/shared_ptr.hpp' line='282' column='1'/>
+          <return type-id='type-id-251'/>
         </function-decl>
       </namespace-decl>
       <namespace-decl name='iostreams'>
-        <class-decl name='mapped_file' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='223' column='1' id='type-id-292'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-293'/>
+        <class-decl name='mapped_file' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='223' column='1' id='type-id-294'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-295'/>
+          <member-type access='private'>
+            <typedef-decl name='const_iterator' type-id='type-id-31' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='239' column='1' id='type-id-296'/>
+          </member-type>
           <member-type access='private'>
-            <typedef-decl name='const_iterator' type-id='type-id-29' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='239' column='1' id='type-id-294'/>
+            <typedef-decl name='delegate_type' type-id='type-id-108' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='225' column='1' id='type-id-297'/>
           </member-type>
           <member-type access='private'>
-            <typedef-decl name='delegate_type' type-id='type-id-106' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='225' column='1' id='type-id-295'/>
+            <typedef-decl name='iterator' type-id='type-id-122' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='238' column='1' id='type-id-298'/>
           </member-type>
           <member-type access='private'>
-            <typedef-decl name='iterator' type-id='type-id-120' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='238' column='1' id='type-id-296'/>
+            <typedef-decl name='safe_bool' type-id='type-id-300' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='226' column='1' id='type-id-299'/>
           </member-type>
           <data-member access='public' static='yes'>
-            <var-decl name='max_length' type-id='type-id-155' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='240' column='1'/>
+            <var-decl name='max_length' type-id='type-id-157' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='240' column='1'/>
           </data-member>
           <data-member access='private' layout-offset-in-bits='64'>
-            <var-decl name='delegate_' type-id='type-id-295' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='321' column='1'/>
+            <var-decl name='delegate_' type-id='type-id-297' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='321' column='1'/>
           </data-member>
           <member-function access='public' constructor='yes'>
             <function-decl name='mapped_file' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='243' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-297' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-301' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='mapped_file' mangled-name='_ZN5boost9iostreams11mapped_fileC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams11mapped_fileC2ERKS1_'>
-              <parameter type-id='type-id-297' is-artificial='yes'/>
-              <parameter type-id='type-id-298'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-301' is-artificial='yes'/>
+              <parameter type-id='type-id-302'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='resize' mangled-name='_ZN5boost9iostreams11mapped_file6resizeEl' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams11mapped_file6resizeEl'>
-              <parameter type-id='type-id-297' is-artificial='yes'/>
-              <parameter type-id='type-id-275'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-301' is-artificial='yes'/>
+              <parameter type-id='type-id-277'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='mapped_file_base' size-in-bits='8' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='47' column='1' id='type-id-293'>
+        <class-decl name='mapped_file_base' size-in-bits='8' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='47' column='1' id='type-id-295'>
           <member-type access='private'>
-            <enum-decl name='mapmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='49' column='1' id='type-id-299'>
-              <underlying-type type-id='type-id-48'/>
+            <enum-decl name='mapmode' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='49' column='1' id='type-id-303'>
+              <underlying-type type-id='type-id-50'/>
               <enumerator name='readonly' value='1'/>
               <enumerator name='readwrite' value='2'/>
               <enumerator name='priv' value='4'/>
             </enum-decl>
           </member-type>
         </class-decl>
-        <class-decl name='mapped_file_sink' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='326' column='1' id='type-id-300'>
-          <base-class access='private' layout-offset-in-bits='0' type-id='type-id-292'/>
+        <class-decl name='mapped_file_sink' size-in-bits='192' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='326' column='1' id='type-id-304'>
+          <base-class access='private' layout-offset-in-bits='0' type-id='type-id-294'/>
           <member-function access='public' constructor='yes'>
             <function-decl name='mapped_file_sink' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='355' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-301' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-305' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='mapped_file_sink' mangled-name='_ZN5boost9iostreams16mapped_file_sinkC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams16mapped_file_sinkC2ERKS1_'>
-              <parameter type-id='type-id-301' is-artificial='yes'/>
-              <parameter type-id='type-id-302'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-305' is-artificial='yes'/>
+              <parameter type-id='type-id-306'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='mapped_file_source' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='149' column='1' id='type-id-106'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-293'/>
+        <class-decl name='mapped_file_source' size-in-bits='128' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='149' column='1' id='type-id-108'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-295'/>
           <member-type access='private'>
-            <class-decl name='safe_bool_helper' size-in-bits='32' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='151' column='1' id='type-id-303'>
+            <class-decl name='safe_bool_helper' size-in-bits='32' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='151' column='1' id='type-id-9'>
               <data-member access='public' layout-offset-in-bits='0'>
                 <var-decl name='x' type-id='type-id-8' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='151' column='1'/>
               </data-member>
             </class-decl>
           </member-type>
           <member-type access='private'>
-            <typedef-decl name='iterator' type-id='type-id-29' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='166' column='1' id='type-id-304'/>
+            <typedef-decl name='iterator' type-id='type-id-31' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='166' column='1' id='type-id-307'/>
+          </member-type>
+          <member-type access='private'>
+            <typedef-decl name='param_type' type-id='type-id-85' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='154' column='1' id='type-id-173'/>
           </member-type>
           <member-type access='private'>
-            <typedef-decl name='param_type' type-id='type-id-83' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='154' column='1' id='type-id-171'/>
+            <typedef-decl name='safe_bool' type-id='type-id-10' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='152' column='1' id='type-id-300'/>
           </member-type>
           <member-type access='private'>
-            <typedef-decl name='size_type' type-id='type-id-258' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='165' column='1' id='type-id-174'/>
+            <typedef-decl name='size_type' type-id='type-id-260' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='165' column='1' id='type-id-176'/>
           </member-type>
           <data-member access='public' static='yes'>
-            <var-decl name='max_length' type-id='type-id-175' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='167' column='1'/>
+            <var-decl name='max_length' type-id='type-id-177' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='167' column='1'/>
           </data-member>
           <data-member access='private' layout-offset-in-bits='0'>
-            <var-decl name='pimpl_' type-id='type-id-114' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='218' column='1'/>
+            <var-decl name='pimpl_' type-id='type-id-116' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='218' column='1'/>
           </data-member>
           <member-function access='public' constructor='yes'>
             <function-decl name='mapped_file_source' mangled-name='_ZN5boost9iostreams18mapped_file_sourceC2Ev' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams18mapped_file_sourceC2Ev'>
-              <parameter type-id='type-id-107' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-109' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public' constructor='yes'>
             <function-decl name='mapped_file_source' mangled-name='_ZN5boost9iostreams18mapped_file_sourceC2ERKS1_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams18mapped_file_sourceC2ERKS1_'>
-              <parameter type-id='type-id-107' is-artificial='yes'/>
-              <parameter type-id='type-id-169'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-109' is-artificial='yes'/>
+              <parameter type-id='type-id-171'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='is_open' mangled-name='_ZNK5boost9iostreams18mapped_file_source7is_openEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_source7is_openEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
               <return type-id='type-id-1'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='close' mangled-name='_ZN5boost9iostreams18mapped_file_source5closeEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams18mapped_file_source5closeEv'>
-              <parameter type-id='type-id-107' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-109' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='operator int boost::iostreams::mapped_file_source::safe_bool_helper::*' mangled-name='_ZNK5boost9iostreams18mapped_file_sourcecvMNS1_16safe_bool_helperEiEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_sourcecvMNS1_16safe_bool_helperEiEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
+              <return type-id='type-id-300'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='operator!' mangled-name='_ZNK5boost9iostreams18mapped_file_sourcentEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_sourcentEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
               <return type-id='type-id-1'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='flags' mangled-name='_ZNK5boost9iostreams18mapped_file_source5flagsEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_source5flagsEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
-              <return type-id='type-id-299'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
+              <return type-id='type-id-303'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='size' mangled-name='_ZNK5boost9iostreams18mapped_file_source4sizeEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_source4sizeEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
-              <return type-id='type-id-174'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
+              <return type-id='type-id-176'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='data' mangled-name='_ZNK5boost9iostreams18mapped_file_source4dataEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_source4dataEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
-              <return type-id='type-id-29'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
+              <return type-id='type-id-31'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='begin' mangled-name='_ZNK5boost9iostreams18mapped_file_source5beginEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_source5beginEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
-              <return type-id='type-id-304'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
+              <return type-id='type-id-307'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='end' mangled-name='_ZNK5boost9iostreams18mapped_file_source3endEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNK5boost9iostreams18mapped_file_source3endEv'>
-              <parameter type-id='type-id-170' is-artificial='yes'/>
-              <return type-id='type-id-304'/>
+              <parameter type-id='type-id-172' is-artificial='yes'/>
+              <return type-id='type-id-307'/>
             </function-decl>
           </member-function>
           <member-function access='public' static='yes'>
@@ -3354,156 +3361,156 @@ 
           </member-function>
           <member-function access='private'>
             <function-decl name='init' mangled-name='_ZN5boost9iostreams18mapped_file_source4initEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams18mapped_file_source4initEv'>
-              <parameter type-id='type-id-107' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-109' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='private'>
             <function-decl name='open_impl' mangled-name='_ZN5boost9iostreams18mapped_file_source9open_implERKNS0_24basic_mapped_file_paramsINS0_6detail4pathEEE' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='216' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams18mapped_file_source9open_implERKNS0_24basic_mapped_file_paramsINS0_6detail4pathEEE'>
-              <parameter type-id='type-id-107' is-artificial='yes'/>
-              <parameter type-id='type-id-173'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-109' is-artificial='yes'/>
+              <parameter type-id='type-id-175'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
-        <class-decl name='basic_mapped_file_params&lt;boost::iostreams::detail::path&gt;' size-in-bits='896' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='109' column='1' id='type-id-83'>
-          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-93'/>
+        <class-decl name='basic_mapped_file_params&lt;boost::iostreams::detail::path&gt;' size-in-bits='896' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='109' column='1' id='type-id-85'>
+          <base-class access='public' layout-offset-in-bits='0' type-id='type-id-95'/>
           <data-member access='public' layout-offset-in-bits='320'>
-            <var-decl name='path' type-id='type-id-95' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='142' column='1'/>
+            <var-decl name='path' type-id='type-id-97' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='142' column='1'/>
           </data-member>
           <member-function access='public'>
             <function-decl name='basic_mapped_file_params' mangled-name='_ZN5boost9iostreams24basic_mapped_file_paramsINS0_6detail4pathEEC2Ev' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='121' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-84' is-artificial='yes'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-86' is-artificial='yes'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='basic_mapped_file_params' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-84' is-artificial='yes'/>
-              <parameter type-id='type-id-157'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-86' is-artificial='yes'/>
+              <parameter type-id='type-id-159'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
           <member-function access='public'>
             <function-decl name='basic_mapped_file_params' mangled-name='_ZN5boost9iostreams24basic_mapped_file_paramsINS0_6detail4pathEEC2ERKS4_' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
-              <parameter type-id='type-id-84' is-artificial='yes'/>
-              <parameter type-id='type-id-149'/>
-              <return type-id='type-id-249'/>
+              <parameter type-id='type-id-86' is-artificial='yes'/>
+              <parameter type-id='type-id-151'/>
+              <return type-id='type-id-251'/>
             </function-decl>
           </member-function>
         </class-decl>
         <namespace-decl name='detail'>
-          <class-decl name='mapped_file_impl' size-in-bits='1088' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='45' column='1' id='type-id-88'>
+          <class-decl name='mapped_file_impl' size-in-bits='1088' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='45' column='1' id='type-id-90'>
             <member-type access='private'>
-              <typedef-decl name='mapmode' type-id='type-id-299' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='49' column='1' id='type-id-305'/>
+              <typedef-decl name='mapmode' type-id='type-id-303' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='49' column='1' id='type-id-308'/>
             </member-type>
             <member-type access='private'>
-              <typedef-decl name='param_type' type-id='type-id-171' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='48' column='1' id='type-id-91'/>
+              <typedef-decl name='param_type' type-id='type-id-173' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='48' column='1' id='type-id-93'/>
             </member-type>
             <member-type access='private'>
-              <typedef-decl name='size_type' type-id='type-id-174' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='47' column='1' id='type-id-154'/>
+              <typedef-decl name='size_type' type-id='type-id-176' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='47' column='1' id='type-id-156'/>
             </member-type>
             <data-member access='public' static='yes'>
-              <var-decl name='max_length' type-id='type-id-155' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='50' column='1'/>
+              <var-decl name='max_length' type-id='type-id-157' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='50' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='0'>
-              <var-decl name='params_' type-id='type-id-91' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='70' column='1'/>
+              <var-decl name='params_' type-id='type-id-93' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='70' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='896'>
-              <var-decl name='data_' type-id='type-id-120' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='71' column='1'/>
+              <var-decl name='data_' type-id='type-id-122' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='71' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='960'>
-              <var-decl name='size_' type-id='type-id-275' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='72' column='1'/>
+              <var-decl name='size_' type-id='type-id-277' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='72' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='1024'>
-              <var-decl name='handle_' type-id='type-id-273' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='73' column='1'/>
+              <var-decl name='handle_' type-id='type-id-275' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='73' column='1'/>
             </data-member>
             <data-member access='private' layout-offset-in-bits='1056'>
               <var-decl name='error_' type-id='type-id-1' visibility='default' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='77' column='1'/>
             </data-member>
             <member-function access='public' constructor='yes'>
               <function-decl name='mapped_file_impl' mangled-name='_ZN5boost9iostreams6detail16mapped_file_implC2Ev' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_implC2Ev'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' destructor='yes'>
               <function-decl name='~mapped_file_impl' mangled-name='_ZN5boost9iostreams6detail16mapped_file_implD2Ev' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_implD2Ev'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='clear' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl5clearEb' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl5clearEb'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
                 <parameter type-id='type-id-1'/>
-                <return type-id='type-id-249'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='unmap_file' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl10unmap_fileEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl10unmap_fileEv'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
                 <return type-id='type-id-1'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='close' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl5closeEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl5closeEv'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='is_open' mangled-name='_ZNK5boost9iostreams6detail16mapped_file_impl7is_openEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-153' is-artificial='yes'/>
+                <parameter type-id='type-id-155' is-artificial='yes'/>
                 <return type-id='type-id-1'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='open' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl4openENS0_24basic_mapped_file_paramsINS1_4pathEEE' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl4openENS0_24basic_mapped_file_paramsINS1_4pathEEE'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <parameter type-id='type-id-91'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <parameter type-id='type-id-93'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='open_file' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl9open_fileENS0_24basic_mapped_file_paramsINS1_4pathEEE' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl9open_fileENS0_24basic_mapped_file_paramsINS1_4pathEEE'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <parameter type-id='type-id-91'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <parameter type-id='type-id-93'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='try_map_file' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl12try_map_fileENS0_24basic_mapped_file_paramsINS1_4pathEEE' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl12try_map_fileENS0_24basic_mapped_file_paramsINS1_4pathEEE'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <parameter type-id='type-id-91'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <parameter type-id='type-id-93'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='map_file' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl8map_fileERNS0_24basic_mapped_file_paramsINS1_4pathEEE' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl8map_fileERNS0_24basic_mapped_file_paramsINS1_4pathEEE'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <parameter type-id='type-id-92'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <parameter type-id='type-id-94'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='cleanup_and_throw' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl17cleanup_and_throwEPKc' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl17cleanup_and_throwEPKc'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <parameter type-id='type-id-29'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <parameter type-id='type-id-31'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='flags' mangled-name='_ZNK5boost9iostreams6detail16mapped_file_impl5flagsEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-153' is-artificial='yes'/>
-                <return type-id='type-id-305'/>
+                <parameter type-id='type-id-155' is-artificial='yes'/>
+                <return type-id='type-id-308'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='resize' mangled-name='_ZN5boost9iostreams6detail16mapped_file_impl6resizeEl' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail16mapped_file_impl6resizeEl'>
-                <parameter type-id='type-id-90' is-artificial='yes'/>
-                <parameter type-id='type-id-275'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-92' is-artificial='yes'/>
+                <parameter type-id='type-id-277'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='public' static='yes'>
@@ -3513,82 +3520,82 @@ 
             </member-function>
             <member-function access='public'>
               <function-decl name='error' mangled-name='_ZNK5boost9iostreams6detail16mapped_file_impl5errorEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-153' is-artificial='yes'/>
+                <parameter type-id='type-id-155' is-artificial='yes'/>
                 <return type-id='type-id-1'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='size' mangled-name='_ZNK5boost9iostreams6detail16mapped_file_impl4sizeEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-153' is-artificial='yes'/>
-                <return type-id='type-id-258'/>
+                <parameter type-id='type-id-155' is-artificial='yes'/>
+                <return type-id='type-id-260'/>
               </function-decl>
             </member-function>
             <member-function access='public'>
               <function-decl name='data' mangled-name='_ZNK5boost9iostreams6detail16mapped_file_impl4dataEv' filepath='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-153' is-artificial='yes'/>
-                <return type-id='type-id-120'/>
+                <parameter type-id='type-id-155' is-artificial='yes'/>
+                <return type-id='type-id-122'/>
               </function-decl>
             </member-function>
           </class-decl>
-          <class-decl name='mapped_file_params_base' size-in-bits='320' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='82' column='1' id='type-id-93'>
+          <class-decl name='mapped_file_params_base' size-in-bits='320' is-struct='yes' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='82' column='1' id='type-id-95'>
             <data-member access='public' layout-offset-in-bits='0'>
-              <var-decl name='flags' type-id='type-id-299' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='92' column='1'/>
+              <var-decl name='flags' type-id='type-id-303' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='92' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='32'>
-              <var-decl name='mode' type-id='type-id-251' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='93' column='1'/>
+              <var-decl name='mode' type-id='type-id-253' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='93' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='64'>
-              <var-decl name='offset' type-id='type-id-275' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='94' column='1'/>
+              <var-decl name='offset' type-id='type-id-277' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='94' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='128'>
-              <var-decl name='length' type-id='type-id-258' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='95' column='1'/>
+              <var-decl name='length' type-id='type-id-260' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='95' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='192'>
-              <var-decl name='new_file_size' type-id='type-id-275' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='96' column='1'/>
+              <var-decl name='new_file_size' type-id='type-id-277' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='96' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='256'>
-              <var-decl name='hint' type-id='type-id-29' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='97' column='1'/>
+              <var-decl name='hint' type-id='type-id-31' visibility='default' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='97' column='1'/>
             </data-member>
             <member-function access='public' constructor='yes'>
               <function-decl name='mapped_file_params_base' mangled-name='_ZN5boost9iostreams6detail23mapped_file_params_baseC2Ev' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
-                <parameter type-id='type-id-94' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-96' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
             <member-function access='private'>
               <function-decl name='normalize' mangled-name='_ZN5boost9iostreams6detail23mapped_file_params_base9normalizeEv' filepath='src/third_party/boost-1.60.0/boost/iostreams/device/mapped_file.hpp' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost9iostreams6detail23mapped_file_params_base9normalizeEv'>
-                <parameter type-id='type-id-94' is-artificial='yes'/>
-                <return type-id='type-id-249'/>
+                <parameter type-id='type-id-96' is-artificial='yes'/>
+                <return type-id='type-id-251'/>
               </function-decl>
             </member-function>
           </class-decl>
         </namespace-decl>
       </namespace-decl>
     </namespace-decl>
-    <type-decl name='variadic parameter type' id='type-id-306'/>
-    <type-decl name='void' id='type-id-249'/>
-    <pointer-type-def type-id='type-id-249' id='type-id-20'/>
-    <function-type size-in-bits='64' id='type-id-226'>
-      <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-20'/>
+    <type-decl name='variadic parameter type' id='type-id-309'/>
+    <type-decl name='void' id='type-id-251'/>
+    <pointer-type-def type-id='type-id-251' id='type-id-22'/>
+    <function-type size-in-bits='64' id='type-id-228'>
+      <parameter type-id='type-id-22'/>
+      <parameter type-id='type-id-22'/>
       <return type-id='type-id-8'/>
     </function-type>
-    <function-type size-in-bits='64' id='type-id-237'>
-      <return type-id='type-id-249'/>
+    <function-type size-in-bits='64' id='type-id-239'>
+      <return type-id='type-id-251'/>
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='src/third_party/boost-1.60.0/libs/iostreams/src/mapped_file.cpp' comp-dir-path='/home/andrew/Documents/10gen/dev/src/mongodb' language='LANG_C_plus_plus'>
-    <reference-type-def kind='lvalue' type-id='type-id-283' size-in-bits='64' id='type-id-307'/>
-    <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-284'/>
-    <pointer-type-def type-id='type-id-292' size-in-bits='64' id='type-id-297'/>
-    <pointer-type-def type-id='type-id-300' size-in-bits='64' id='type-id-301'/>
-    <reference-type-def kind='lvalue' type-id='type-id-106' size-in-bits='64' id='type-id-308'/>
-    <qualified-type-def type-id='type-id-283' const='yes' id='type-id-309'/>
-    <reference-type-def kind='lvalue' type-id='type-id-309' size-in-bits='64' id='type-id-285'/>
-    <qualified-type-def type-id='type-id-292' const='yes' id='type-id-310'/>
-    <reference-type-def kind='lvalue' type-id='type-id-310' size-in-bits='64' id='type-id-298'/>
-    <pointer-type-def type-id='type-id-310' size-in-bits='64' id='type-id-311'/>
-    <qualified-type-def type-id='type-id-300' const='yes' id='type-id-312'/>
-    <reference-type-def kind='lvalue' type-id='type-id-312' size-in-bits='64' id='type-id-302'/>
+    <reference-type-def kind='lvalue' type-id='type-id-285' size-in-bits='64' id='type-id-310'/>
+    <pointer-type-def type-id='type-id-285' size-in-bits='64' id='type-id-286'/>
+    <pointer-type-def type-id='type-id-294' size-in-bits='64' id='type-id-301'/>
+    <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-305'/>
+    <reference-type-def kind='lvalue' type-id='type-id-108' size-in-bits='64' id='type-id-311'/>
+    <qualified-type-def type-id='type-id-285' const='yes' id='type-id-312'/>
+    <reference-type-def kind='lvalue' type-id='type-id-312' size-in-bits='64' id='type-id-287'/>
+    <qualified-type-def type-id='type-id-294' const='yes' id='type-id-313'/>
+    <reference-type-def kind='lvalue' type-id='type-id-313' size-in-bits='64' id='type-id-302'/>
+    <pointer-type-def type-id='type-id-313' size-in-bits='64' id='type-id-314'/>
+    <qualified-type-def type-id='type-id-304' const='yes' id='type-id-315'/>
+    <reference-type-def kind='lvalue' type-id='type-id-315' size-in-bits='64' id='type-id-306'/>
   </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-read-dwarf/test-pointer-to-member-1.cc b/tests/data/test-read-dwarf/test-pointer-to-member-1.cc
new file mode 100644
index 00000000..c034e76c
--- /dev/null
+++ b/tests/data/test-read-dwarf/test-pointer-to-member-1.cc
@@ -0,0 +1,30 @@ 
+struct X {
+  void f(int);
+  int a;
+};
+struct Y;
+
+int X::* pmi = &X::a;
+void (X::* pmf)(int) = &X::f;
+double X::* pmd;
+char Y::* pmc;
+
+typedef struct { int t; } T;
+auto pmy = &T::t;
+
+namespace {
+struct Z { int z; };
+}
+int Z::* pmz = &Z::z;
+
+union U { int u; };
+auto pmu = &U::u;
+
+typedef const U CU;
+auto pmcu = &CU::u;
+
+int
+main()
+{
+  return 0;
+}
diff --git a/tests/data/test-read-dwarf/test-pointer-to-member-1.o b/tests/data/test-read-dwarf/test-pointer-to-member-1.o
new file mode 100644
index 0000000000000000000000000000000000000000..04c1b0458772f76c95a1cf226930efa31a806ed9
GIT binary patch
literal 4360
zcmbtXO>7%g5T56?osHLaoH$7vLKUZ?RZ8(+8q)tZ5VcJyRHbTATY=KGy><-okDPUB
zbD<YddqC<56$v4=C%7OXA?U3KE(n3dg)1rtkT@X(5=b1%%-c8X?ZYVuM%wpgzWIIs
z_8Z5ZKOPbSm;@Ywp2R4?7gmp7kn94C!6+;*-T2`y$*+7aQN4Mf(a#t>0>UJ_0cxhH
z2~r>tnCBrZgn0?|gH;eA>2?aGm+%V{9I0Xhh7HDm<YHzHWh)%1H(e0K6D+oe+KoC4
z#2P3J8rVpRzk}Uv`~sm8<nuOu=urhTPU@bAjQAx&VtdpKV^3xk7);!I$SipQ#E*#l
zh96prDE4GohM4sevb}&qVG&Oi&%sWd7sG}4xEw|59EkX23Nb+ne+XA05iKCl^B=CE
zIC2rEDP<ZPkV;8^5X-(>y4~0SF%l!gp5N#)x{MCIkKkAr#ORRp6W4t=thNhdQ8MUx
zjng>9Rt?=E(MjQ@CIMH#>p;8*VhXmUPo|&Sic>HLhIwFG9JKaZC(}nKLWmiOAhvHB
z9m5egnVy@#)g=ZX`UF_k5z9#8o*5Q9l4;ABnw%OIBLgYSZKj1`TGj!Jq6#!0%!#8D
zm`4K5<e`a5n&8+FMxk()3WvKXJ|;Y6!YdLWnZ|MsVeX-{;Gj*D{8Qsps0>O`hWCpb
zVuBPS!2$r%a*)c7MmV}fD{xE>*^e}i4oME|P0E%W;1GO}hPtqI1FM3k@C(Vwm4`uc
z)bND+fMQ<2J_05@iM<fw&t!r+Tva;e$V?FnAu$yi^1_k`5dnj~XiSPo>{LWt2!+t2
zylQu#((0Dh95``$IkUKXcX4l~Sj^4kikaEM?4H7W;pxoGS*Ma&vR$Rf&hE-&8*aDh
z9IiP{r&BMZXm`r1hp+6L&(6<fFVAMOHE7uNCg3sY!pg<d#q-7Lu{yZUx|?mc@H{)6
ztlP>qoJI+`Vy;|<{A#P=<SVVptMz=X?&jC(CA(Cw+4Z&jnX`Kev-5>Kxv%Fdwrfi^
z+i~nlw(`2&ss2yzN7eNx9h_KPJdl~esoV80W=*aJHlvCW8)rdWNr}n$fO!*_?s3HF
zBa&O-nPlp%&|)Hb91T3UZ%eBlhF>1^QyP6=06eK`<LN#IM$%~;0s`@jQUq%;a6|SZ
z!+R0_rZRB*_9Fvg{a~y!z6qY#1RvT2Pi=zZMWoR*%EN(q;EH!h+&@ad5qBZZd@$4=
zWzRZ}vsdAGok(K*pv1%e3^9IG;d-1!h3j#a5FZJwyMLWLYAe&rLhmZQl)VE>4<bEv
z?Z#F7y2N+AlZ`o;X#WkffIZhuD=L2%C>^gD;q>v!jwn50eyzyM7YcjE`D{F<>?v<=
zH9%gAq$2x4VieK*5fM%wzin?4h(vLMyXG^AdN|KHL0>DJ<M7V^E@01NA?SC_UWs5*
zLL}<&$?<6^fb$(e%4-3fPG^Qdq)!9*m<P%Bp2E3KTj{<E*z??y>RZkJWo3UqU>}_4
zsM1q><_Y4tBDbLZc2XjdJ+1FW5|HTmBVzoPCqhy6jDMnJIv+%O{ES4soWZ=1Tff?H
z?GpBG$Lm*_bDb+L<T}opoul^za;5ckmYq_!wo-3aTac?r-Y%6o&gF;HcE@hkoQGZ3
z>P?4TFb}f?uSmJvYBU`DEt_k$TqlRGMt0q`%de@x&gx3FV>cW%n*ZKSqASf&aBV2s
z0yRj%Ge)vnW@07n#FjAsx3veu8P#W0&mFHj%hSlvK3!ly^=)-A@O?#Rh1QGj3&v?*
z5T@sEBStjib$-kK49p{=kBM~b|Es3dM7jU^)qh<jy009le!2rVKiB^(VtP!3piF~B
zI;|-+5th+L$H?zvH6aBO0;JoXL0!N4SLr|@u|L&Mwd?iQ5z}KL1mCOtFOm=--L`_d
ze)(^y{Fjt3<tIqb-$jgKa-GOZnx&vfZLjlN&d>cd)b#Veqx`?|Jw1l~xWBoHe@9*T
z`G4?#SNUsZaGM_tO~H8?{z&<&?ZPm8p#1mwh{y2!G5jGi{pSA<HUGR%Y5r6Au|MNf
ykDePLxUcdrC?&mJ^ls|@^!Dm!7a_<fL;4#NBz^q!TcV$TN?lxcgU-n7{(k|I@m$3K

literal 0
HcmV?d00001

diff --git a/tests/data/test-read-dwarf/test-pointer-to-member-1.o.abi b/tests/data/test-read-dwarf/test-pointer-to-member-1.o.abi
--- /dev/null
+++ b/tests/data/test-read-dwarf/test-pointer-to-member-1.o.abi
@@ -0,0 +1,59 @@ 
+<abi-corpus version='2.2'>
+  <elf-function-symbols>
+    <elf-symbol name='main' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='pmc' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='pmcu' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='pmd' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='pmf' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='pmi' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='pmu' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='pmy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr address-size='64' path='test-pointer-to-member-1.cc' comp-dir-path='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf' language='LANG_C_plus_plus_14'>
+    <type-decl name='char' size-in-bits='8' id='type-id-1'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-1' containing-type-id='type-id-2' id ='type-id-3'/>
+    <type-decl name='double' size-in-bits='64' id='type-id-4'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-4' containing-type-id='type-id-5' id ='type-id-6'/>
+    <type-decl name='int' size-in-bits='32' id='type-id-7'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-7' containing-type-id='type-id-8' id ='type-id-9'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-7' containing-type-id='type-id-10' id ='type-id-11'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-7' containing-type-id='type-id-5' id ='type-id-12'/>
+    <class-decl name='T' size-in-bits='32' is-struct='yes' naming-typedef-id='type-id-8' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='12' column='1' id='type-id-13'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='t' type-id='type-id-7' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='12' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='X' size-in-bits='32' is-struct='yes' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='1' column='1' id='type-id-5'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='a' type-id='type-id-7' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='3' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='T' type-id='type-id-13' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='12' column='1' id='type-id-8'/>
+    <union-decl name='U' size-in-bits='32' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='20' column='1' id='type-id-10'>
+      <data-member access='public'>
+        <var-decl name='u' type-id='type-id-7' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='20' column='1'/>
+      </data-member>
+    </union-decl>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-14' containing-type-id='type-id-5' id ='type-id-15'/>
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-16'/>
+    <class-decl name='Y' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-2'/>
+    <var-decl name='pmi' type-id='type-id-12' mangled-name='pmi' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='7' column='1' elf-symbol-id='pmi'/>
+    <type-decl name='void' id='type-id-17'/>
+    <var-decl name='pmf' type-id='type-id-15' mangled-name='pmf' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='8' column='1' elf-symbol-id='pmf'/>
+    <var-decl name='pmd' type-id='type-id-6' mangled-name='pmd' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='9' column='1' elf-symbol-id='pmd'/>
+    <var-decl name='pmc' type-id='type-id-3' mangled-name='pmc' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='10' column='1' elf-symbol-id='pmc'/>
+    <var-decl name='pmy' type-id='type-id-9' mangled-name='pmy' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='13' column='1' elf-symbol-id='pmy'/>
+    <var-decl name='pmu' type-id='type-id-11' mangled-name='pmu' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='21' column='1' elf-symbol-id='pmu'/>
+    <var-decl name='pmcu' type-id='type-id-11' mangled-name='pmcu' visibility='default' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='24' column='1' elf-symbol-id='pmcu'/>
+    <function-decl name='main' mangled-name='main' filepath='/home/dodji/git/libabigail/PR30260/tests/data/test-read-dwarf/test-pointer-to-member-1.cc' line='27' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='main'>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <function-type size-in-bits='64' method-class-id='type-id-5' id='type-id-14'>
+      <parameter type-id='type-id-16' is-artificial='yes'/>
+      <parameter type-id='type-id-7'/>
+      <return type-id='type-id-17'/>
+    </function-type>
+  </abi-instr>
+</abi-corpus>
diff --git a/tests/data/test-read-dwarf/test12-pr18844.so.abi b/tests/data/test-read-dwarf/test12-pr18844.so.abi
index fb1f31e1..90914ded 100644
--- a/tests/data/test-read-dwarf/test12-pr18844.so.abi
+++ b/tests/data/test-read-dwarf/test12-pr18844.so.abi
@@ -1785,16 +1785,18 @@ 
     <type-decl name='double' size-in-bits='64' id='type-id-38'/>
     <type-decl name='float' size-in-bits='32' id='type-id-39'/>
     <type-decl name='int' size-in-bits='32' id='type-id-40'/>
-    <type-decl name='long double' size-in-bits='128' id='type-id-41'/>
-    <type-decl name='long int' size-in-bits='64' id='type-id-42'/>
-    <type-decl name='long long int' size-in-bits='64' id='type-id-43'/>
-    <type-decl name='short int' size-in-bits='16' id='type-id-44'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-40' containing-type-id='type-id-41' id ='type-id-42'/>
+    <type-decl name='long double' size-in-bits='128' id='type-id-43'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-44'/>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-45'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-46' containing-type-id='type-id-47' id ='type-id-48'/>
+    <type-decl name='short int' size-in-bits='16' id='type-id-49'/>
     <type-decl name='sizetype' size-in-bits='64' id='type-id-3'/>
-    <class-decl name='__mbstate_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-45' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-46'>
+    <class-decl name='__mbstate_t' size-in-bits='64' is-struct='yes' naming-typedef-id='type-id-50' visibility='default' filepath='/usr/include/wchar.h' line='82' column='1' id='type-id-51'>
       <member-type access='public'>
-        <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-47'>
+        <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='/usr/include/wchar.h' line='85' column='1' id='type-id-52'>
           <data-member access='public'>
-            <var-decl name='__wch' type-id='type-id-48' visibility='default' filepath='/usr/include/wchar.h' line='88' column='1'/>
+            <var-decl name='__wch' type-id='type-id-53' visibility='default' filepath='/usr/include/wchar.h' line='88' column='1'/>
           </data-member>
           <data-member access='public'>
             <var-decl name='__wchb' type-id='type-id-23' visibility='default' filepath='/usr/include/wchar.h' line='92' column='1'/>
@@ -1805,48 +1807,48 @@ 
         <var-decl name='__count' type-id='type-id-40' visibility='default' filepath='/usr/include/wchar.h' line='84' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='__value' type-id='type-id-47' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
+        <var-decl name='__value' type-id='type-id-52' visibility='default' filepath='/usr/include/wchar.h' line='93' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='75' column='1' id='type-id-49'>
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='75' column='1' id='type-id-54'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__prev' type-id='type-id-50' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='77' column='1'/>
+        <var-decl name='__prev' type-id='type-id-55' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='77' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='__next' type-id='type-id-50' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='78' column='1'/>
+        <var-decl name='__next' type-id='type-id-55' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='78' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-51'>
+    <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-56'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='gp_offset' type-id='type-id-48' visibility='default'/>
+        <var-decl name='gp_offset' type-id='type-id-53' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='fp_offset' type-id='type-id-48' visibility='default'/>
+        <var-decl name='fp_offset' type-id='type-id-53' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='overflow_arg_area' type-id='type-id-52' visibility='default'/>
+        <var-decl name='overflow_arg_area' type-id='type-id-57' visibility='default'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='reg_save_area' type-id='type-id-52' visibility='default'/>
+        <var-decl name='reg_save_area' type-id='type-id-57' visibility='default'/>
       </data-member>
     </class-decl>
-    <class-decl name='ldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-53' visibility='default' filepath='/usr/include/stdlib.h' line='105' column='1' id='type-id-54'>
+    <class-decl name='ldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-58' visibility='default' filepath='/usr/include/stdlib.h' line='105' column='1' id='type-id-59'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='quot' type-id='type-id-42' visibility='default' filepath='/usr/include/stdlib.h' line='107' column='1'/>
+        <var-decl name='quot' type-id='type-id-44' visibility='default' filepath='/usr/include/stdlib.h' line='107' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='rem' type-id='type-id-42' visibility='default' filepath='/usr/include/stdlib.h' line='108' column='1'/>
+        <var-decl name='rem' type-id='type-id-44' visibility='default' filepath='/usr/include/stdlib.h' line='108' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='lldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-55' visibility='default' filepath='/usr/include/stdlib.h' line='117' column='1' id='type-id-56'>
+    <class-decl name='lldiv_t' size-in-bits='128' is-struct='yes' naming-typedef-id='type-id-60' visibility='default' filepath='/usr/include/stdlib.h' line='117' column='1' id='type-id-61'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='quot' type-id='type-id-43' visibility='default' filepath='/usr/include/stdlib.h' line='119' column='1'/>
+        <var-decl name='quot' type-id='type-id-45' visibility='default' filepath='/usr/include/stdlib.h' line='119' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='rem' type-id='type-id-43' visibility='default' filepath='/usr/include/stdlib.h' line='120' column='1'/>
+        <var-decl name='rem' type-id='type-id-45' visibility='default' filepath='/usr/include/stdlib.h' line='120' column='1'/>
       </data-member>
     </class-decl>
-    <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-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-62'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='tm_sec' type-id='type-id-40' visibility='default' filepath='/usr/include/time.h' line='135' column='1'/>
       </data-member>
@@ -1875,422 +1877,417 @@ 
         <var-decl name='tm_isdst' type-id='type-id-40' 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-42' visibility='default' filepath='/usr/include/time.h' line='146' column='1'/>
+        <var-decl name='tm_gmtoff' type-id='type-id-44' 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-58' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
+        <var-decl name='tm_zone' type-id='type-id-63' visibility='default' filepath='/usr/include/time.h' line='147' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='_Atomic_word' type-id='type-id-40' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/atomic_word.h' line='32' column='1' id='type-id-59'/>
-    <typedef-decl name='_G_fpos_t' type-id='type-id-54' filepath='/usr/include/_G_config.h' line='25' column='1' id='type-id-60'/>
-    <typedef-decl name='__bucket_type' type-id='type-id-61' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/hashtable_policy.h' line='1905' column='1' id='type-id-62'/>
-    <typedef-decl name='__clock_t' type-id='type-id-42' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='135' column='1' id='type-id-63'/>
-    <typedef-decl name='__compar_fn_t' type-id='type-id-64' filepath='/usr/include/stdlib.h' line='741' column='1' id='type-id-65'/>
-    <typedef-decl name='__gthread_cond_t' type-id='type-id-66' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h' line='52' column='1' id='type-id-67'/>
-    <typedef-decl name='__gthread_mutex_t' type-id='type-id-68' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h' line='50' column='1' id='type-id-69'/>
-    <typedef-decl name='__gthread_t' type-id='type-id-70' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h' line='47' column='1' id='type-id-71'/>
-    <typedef-decl name='__int32_t' type-id='type-id-40' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='40' column='1' id='type-id-72'/>
-    <typedef-decl name='__mbstate_t' type-id='type-id-46' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-45'/>
-    <typedef-decl name='__node_base' type-id='type-id-73' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/hashtable_policy.h' line='1904' column='1' id='type-id-74'/>
-    <typedef-decl name='__pthread_list_t' type-id='type-id-49' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='79' column='1' id='type-id-75'/>
-    <typedef-decl name='__time_t' type-id='type-id-42' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='139' column='1' id='type-id-76'/>
-    <typedef-decl name='__va_list_tag' type-id='type-id-51' id='type-id-77'/>
-    <typedef-decl name='clock_t' type-id='type-id-63' filepath='/usr/include/time.h' line='59' column='1' id='type-id-78'/>
-    <typedef-decl name='div_t' type-id='type-id-54' filepath='/usr/include/stdlib.h' line='101' column='1' id='type-id-79'/>
-    <typedef-decl name='fpos_t' type-id='type-id-60' filepath='/usr/include/stdio.h' line='110' column='1' id='type-id-80'/>
-    <typedef-decl name='int32_t' type-id='type-id-40' filepath='/usr/include/stdint.h' line='38' column='1' id='type-id-81'/>
-    <typedef-decl name='int64_t' type-id='type-id-42' filepath='/usr/include/stdint.h' line='40' column='1' id='type-id-82'/>
-    <typedef-decl name='intptr_t' type-id='type-id-42' filepath='/usr/include/stdint.h' line='119' column='1' id='type-id-83'/>
-    <typedef-decl name='is_not_reference_tag' type-id='type-id-84' filepath='src/third_party/boost-1.56.0/boost/optional/optional.hpp' line='226' column='1' id='type-id-85'/>
-    <typedef-decl name='is_reference_tag' type-id='type-id-86' filepath='src/third_party/boost-1.56.0/boost/optional/optional.hpp' line='225' column='1' id='type-id-87'/>
-    <typedef-decl name='ldiv_t' type-id='type-id-54' filepath='/usr/include/stdlib.h' line='109' column='1' id='type-id-53'/>
-    <typedef-decl name='lldiv_t' type-id='type-id-56' filepath='/usr/include/stdlib.h' line='121' column='1' id='type-id-55'/>
-    <typedef-decl name='mbstate_t' type-id='type-id-45' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-88'/>
-    <typedef-decl name='pthread_cond_t' type-id='type-id-89' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='154' column='1' id='type-id-66'/>
-    <typedef-decl name='pthread_mutex_t' type-id='type-id-90' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='128' column='1' id='type-id-68'/>
-    <typedef-decl name='pthread_t' type-id='type-id-91' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='60' column='1' id='type-id-70'/>
-    <typedef-decl name='size_type' type-id='type-id-92' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/ext/new_allocator.h' line='61' column='1' id='type-id-93'/>
-    <typedef-decl name='time_t' type-id='type-id-76' filepath='/usr/include/time.h' line='75' column='1' id='type-id-94'/>
-    <typedef-decl name='uint32_t' type-id='type-id-48' filepath='/usr/include/stdint.h' line='51' column='1' id='type-id-95'/>
-    <typedef-decl name='uint64_t' type-id='type-id-91' filepath='/usr/include/stdint.h' line='55' column='1' id='type-id-96'/>
-    <typedef-decl name='wctrans_t' type-id='type-id-97' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-98'/>
-    <typedef-decl name='wctype_t' type-id='type-id-91' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-99'/>
-    <typedef-decl name='wint_t' type-id='type-id-48' filepath='/usr/lib/llvm-3.6/bin/../lib/clang/3.6.0/include/stddef.h' line='132' column='1' id='type-id-100'/>
-    <union-decl name='pthread_cond_t' size-in-bits='384' naming-typedef-id='type-id-66' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='139' column='1' id='type-id-89'>
+    <typedef-decl name='_Atomic_word' type-id='type-id-40' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/atomic_word.h' line='32' column='1' id='type-id-64'/>
+    <typedef-decl name='_G_fpos_t' type-id='type-id-59' filepath='/usr/include/_G_config.h' line='25' column='1' id='type-id-65'/>
+    <typedef-decl name='__bucket_type' type-id='type-id-66' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/hashtable_policy.h' line='1905' column='1' id='type-id-67'/>
+    <typedef-decl name='__clock_t' type-id='type-id-44' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='135' column='1' id='type-id-68'/>
+    <typedef-decl name='__compar_fn_t' type-id='type-id-69' filepath='/usr/include/stdlib.h' line='741' column='1' id='type-id-70'/>
+    <typedef-decl name='__gthread_cond_t' type-id='type-id-71' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h' line='52' column='1' id='type-id-72'/>
+    <typedef-decl name='__gthread_mutex_t' type-id='type-id-73' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h' line='50' column='1' id='type-id-74'/>
+    <typedef-decl name='__gthread_t' type-id='type-id-75' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h' line='47' column='1' id='type-id-76'/>
+    <typedef-decl name='__int32_t' type-id='type-id-40' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='40' column='1' id='type-id-77'/>
+    <typedef-decl name='__mbstate_t' type-id='type-id-51' filepath='/usr/include/wchar.h' line='94' column='1' id='type-id-50'/>
+    <typedef-decl name='__node_base' type-id='type-id-78' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/hashtable_policy.h' line='1904' column='1' id='type-id-79'/>
+    <typedef-decl name='__pthread_list_t' type-id='type-id-54' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='79' column='1' id='type-id-80'/>
+    <typedef-decl name='__time_t' type-id='type-id-44' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='139' column='1' id='type-id-81'/>
+    <typedef-decl name='__va_list_tag' type-id='type-id-56' id='type-id-82'/>
+    <typedef-decl name='clock_t' type-id='type-id-68' filepath='/usr/include/time.h' line='59' column='1' id='type-id-83'/>
+    <typedef-decl name='div_t' type-id='type-id-59' filepath='/usr/include/stdlib.h' line='101' column='1' id='type-id-84'/>
+    <typedef-decl name='fpos_t' type-id='type-id-65' filepath='/usr/include/stdio.h' line='110' column='1' id='type-id-85'/>
+    <typedef-decl name='int32_t' type-id='type-id-40' filepath='/usr/include/stdint.h' line='38' column='1' id='type-id-86'/>
+    <typedef-decl name='int64_t' type-id='type-id-44' filepath='/usr/include/stdint.h' line='40' column='1' id='type-id-87'/>
+    <typedef-decl name='intptr_t' type-id='type-id-44' filepath='/usr/include/stdint.h' line='119' column='1' id='type-id-88'/>
+    <typedef-decl name='is_not_reference_tag' type-id='type-id-89' filepath='src/third_party/boost-1.56.0/boost/optional/optional.hpp' line='226' column='1' id='type-id-90'/>
+    <typedef-decl name='is_reference_tag' type-id='type-id-91' filepath='src/third_party/boost-1.56.0/boost/optional/optional.hpp' line='225' column='1' id='type-id-92'/>
+    <typedef-decl name='ldiv_t' type-id='type-id-59' filepath='/usr/include/stdlib.h' line='109' column='1' id='type-id-58'/>
+    <typedef-decl name='lldiv_t' type-id='type-id-61' filepath='/usr/include/stdlib.h' line='121' column='1' id='type-id-60'/>
+    <typedef-decl name='mbstate_t' type-id='type-id-50' filepath='/usr/include/wchar.h' line='106' column='1' id='type-id-93'/>
+    <typedef-decl name='pthread_cond_t' type-id='type-id-94' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='154' column='1' id='type-id-71'/>
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-95' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='128' column='1' id='type-id-73'/>
+    <typedef-decl name='pthread_t' type-id='type-id-96' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='60' column='1' id='type-id-75'/>
+    <typedef-decl name='size_type' type-id='type-id-97' filepath='/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/ext/new_allocator.h' line='61' column='1' id='type-id-98'/>
+    <typedef-decl name='time_t' type-id='type-id-81' filepath='/usr/include/time.h' line='75' column='1' id='type-id-99'/>
+    <typedef-decl name='uint32_t' type-id='type-id-53' filepath='/usr/include/stdint.h' line='51' column='1' id='type-id-100'/>
+    <typedef-decl name='uint64_t' type-id='type-id-96' filepath='/usr/include/stdint.h' line='55' column='1' id='type-id-101'/>
+    <typedef-decl name='wctrans_t' type-id='type-id-102' filepath='/usr/include/wctype.h' line='186' column='1' id='type-id-103'/>
+    <typedef-decl name='wctype_t' type-id='type-id-96' filepath='/usr/include/wctype.h' line='52' column='1' id='type-id-104'/>
+    <typedef-decl name='wint_t' type-id='type-id-53' filepath='/usr/lib/llvm-3.6/bin/../lib/clang/3.6.0/include/stddef.h' line='132' column='1' id='type-id-105'/>
+    <union-decl name='pthread_cond_t' size-in-bits='384' naming-typedef-id='type-id-71' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='139' column='1' id='type-id-94'>
       <member-type access='public'>
-        <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='141' column='1' id='type-id-101'>
+        <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='141' column='1' id='type-id-106'>
           <data-member access='public' layout-offset-in-bits='0'>
             <var-decl name='__lock' type-id='type-id-40' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='143' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='32'>
-            <var-decl name='__futex' type-id='type-id-48' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='144' column='1'/>
+            <var-decl name='__futex' type-id='type-id-53' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='144' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='64'>
-            <var-decl name='__total_seq' type-id='type-id-102' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='145' column='1'/>
+            <var-decl name='__total_seq' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='145' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='128'>
-            <var-decl name='__wakeup_seq' type-id='type-id-102' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='146' column='1'/>
+            <var-decl name='__wakeup_seq' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='146' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='192'>
-            <var-decl name='__woken_seq' type-id='type-id-102' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='147' column='1'/>
+            <var-decl name='__woken_seq' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='147' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='256'>
-            <var-decl name='__mutex' type-id='type-id-52' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='148' column='1'/>
+            <var-decl name='__mutex' type-id='type-id-57' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='148' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='320'>
-            <var-decl name='__nwaiters' type-id='type-id-48' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='149' column='1'/>
+            <var-decl name='__nwaiters' type-id='type-id-53' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='149' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='352'>
-            <var-decl name='__broadcast_seq' type-id='type-id-48' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='150' column='1'/>
+            <var-decl name='__broadcast_seq' type-id='type-id-53' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='150' column='1'/>
           </data-member>
         </class-decl>
       </member-type>
       <data-member access='public'>
-        <var-decl name='__data' type-id='type-id-101' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='151' column='1'/>
+        <var-decl name='__data' type-id='type-id-106' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='151' column='1'/>
       </data-member>
       <data-member access='public'>
         <var-decl name='__size' type-id='type-id-21' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='152' column='1'/>
       </data-member>
       <data-member access='public'>
-        <var-decl name='__align' type-id='type-id-43' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='153' column='1'/>
+        <var-decl name='__align' type-id='type-id-45' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='153' column='1'/>
       </data-member>
     </union-decl>
-    <union-decl name='pthread_mutex_t' size-in-bits='320' naming-typedef-id='type-id-68' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='90' column='1' id='type-id-90'>
+    <union-decl name='pthread_mutex_t' size-in-bits='320' naming-typedef-id='type-id-73' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='90' column='1' id='type-id-95'>
       <member-type access='public'>
-        <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='92' column='1' id='type-id-103'>
+        <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='92' column='1' id='type-id-108'>
           <data-member access='public' layout-offset-in-bits='0'>
             <var-decl name='__lock' type-id='type-id-40' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='94' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='32'>
-            <var-decl name='__count' type-id='type-id-48' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='95' column='1'/>
+            <var-decl name='__count' type-id='type-id-53' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='95' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='64'>
             <var-decl name='__owner' type-id='type-id-40' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='96' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='96'>
-            <var-decl name='__nusers' type-id='type-id-48' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='98' column='1'/>
+            <var-decl name='__nusers' type-id='type-id-53' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='98' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='128'>
             <var-decl name='__kind' type-id='type-id-40' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='102' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='160'>
-            <var-decl name='__spins' type-id='type-id-44' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='104' column='1'/>
+            <var-decl name='__spins' type-id='type-id-49' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='104' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='176'>
-            <var-decl name='__elision' type-id='type-id-44' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='105' column='1'/>
+            <var-decl name='__elision' type-id='type-id-49' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='105' column='1'/>
           </data-member>
           <data-member access='public' layout-offset-in-bits='192'>
-            <var-decl name='__list' type-id='type-id-75' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='106' column='1'/>
+            <var-decl name='__list' type-id='type-id-80' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='106' column='1'/>
           </data-member>
         </class-decl>
       </member-type>
       <data-member access='public'>
-        <var-decl name='__data' type-id='type-id-103' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='125' column='1'/>
+        <var-decl name='__data' type-id='type-id-108' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='125' column='1'/>
       </data-member>
       <data-member access='public'>
         <var-decl name='__size' type-id='type-id-19' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='126' column='1'/>
       </data-member>
       <data-member access='public'>
-        <var-decl name='__align' type-id='type-id-42' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='127' column='1'/>
+        <var-decl name='__align' type-id='type-id-44' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='127' column='1'/>
       </data-member>
     </union-decl>
-    <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-104'/>
-    <type-decl name='unsigned char' size-in-bits='8' id='type-id-105'/>
-    <array-type-def dimensions='1' type-id='type-id-105' size-in-bits='128' id='type-id-106'>
+    <type-decl name='unnamed-enum-underlying-type-32' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-109'/>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-110'/>
+    <array-type-def dimensions='1' type-id='type-id-110' size-in-bits='128' id='type-id-111'>
       <subrange length='16' lower-bound='0' upper-bound='15' type-id='type-id-3' id='type-id-12'/>
     </array-type-def>
-    <array-type-def dimensions='1' type-id='type-id-105' size-in-bits='256' id='type-id-107'>
-      <subrange length='32' lower-bound='0' upper-bound='31' type-id='type-id-3' id='type-id-108'/>
+    <array-type-def dimensions='1' type-id='type-id-110' size-in-bits='256' id='type-id-112'>
+      <subrange length='32' lower-bound='0' upper-bound='31' type-id='type-id-3' id='type-id-113'/>
     </array-type-def>
-    <array-type-def dimensions='1' type-id='type-id-105' size-in-bits='768' id='type-id-109'>
-      <subrange length='96' lower-bound='0' upper-bound='95' type-id='type-id-3' id='type-id-110'/>
+    <array-type-def dimensions='1' type-id='type-id-110' size-in-bits='768' id='type-id-114'>
+      <subrange length='96' lower-bound='0' upper-bound='95' type-id='type-id-3' id='type-id-115'/>
     </array-type-def>
-    <type-decl name='unsigned int' size-in-bits='32' id='type-id-48'/>
-    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-91'/>
-    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-102'/>
-    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-111'/>
-    <type-decl name='wchar_t' size-in-bits='32' id='type-id-112'/>
-    <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-113'/>
-    <pointer-type-def type-id='type-id-114' size-in-bits='64' id='type-id-115'/>
-    <pointer-type-def type-id='type-id-116' size-in-bits='64' id='type-id-117'/>
-    <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-119'/>
-    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-121'/>
-    <pointer-type-def type-id='type-id-122' size-in-bits='64' id='type-id-123'/>
-    <pointer-type-def type-id='type-id-124' size-in-bits='64' id='type-id-125'/>
-    <pointer-type-def type-id='type-id-126' size-in-bits='64' id='type-id-127'/>
-    <pointer-type-def type-id='type-id-128' size-in-bits='64' id='type-id-129'/>
-    <pointer-type-def type-id='type-id-130' size-in-bits='64' id='type-id-131'/>
-    <pointer-type-def type-id='type-id-132' size-in-bits='64' id='type-id-133'/>
-    <pointer-type-def type-id='type-id-134' size-in-bits='64' id='type-id-135'/>
-    <pointer-type-def type-id='type-id-136' size-in-bits='64' id='type-id-137'/>
-    <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-139'/>
-    <pointer-type-def type-id='type-id-140' size-in-bits='64' id='type-id-141'/>
-    <pointer-type-def type-id='type-id-74' size-in-bits='64' id='type-id-61'/>
-    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-50'/>
-    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-142'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-53'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-96'/>
+    <type-decl name='unsigned long long int' size-in-bits='64' id='type-id-107'/>
+    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-116'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-117' containing-type-id='type-id-118' id ='type-id-119'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-120' containing-type-id='type-id-118' id ='type-id-121'/>
+    <pointer-to-member-type size-in-bits='64' member-type-id='type-id-122' containing-type-id='type-id-123' id ='type-id-124'/>
+    <type-decl name='wchar_t' size-in-bits='32' id='type-id-125'/>
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-126'/>
+    <pointer-type-def type-id='type-id-127' size-in-bits='64' id='type-id-128'/>
+    <pointer-type-def type-id='type-id-129' size-in-bits='64' id='type-id-130'/>
+    <pointer-type-def type-id='type-id-131' size-in-bits='64' id='type-id-132'/>
+    <pointer-type-def type-id='type-id-133' size-in-bits='64' id='type-id-134'/>
+    <pointer-type-def type-id='type-id-135' size-in-bits='64' id='type-id-136'/>
+    <pointer-type-def type-id='type-id-137' size-in-bits='64' id='type-id-138'/>
+    <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-140'/>
+    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-142'/>
     <pointer-type-def type-id='type-id-143' size-in-bits='64' id='type-id-144'/>
-    <reference-type-def kind='lvalue' type-id='type-id-144' size-in-bits='64' id='type-id-145'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1' size-in-bits='64' id='type-id-146'/>
-    <reference-type-def kind='lvalue' type-id='type-id-147' size-in-bits='64' id='type-id-148'/>
-    <reference-type-def kind='rvalue' type-id='type-id-147' size-in-bits='64' id='type-id-149'/>
-    <pointer-type-def type-id='type-id-147' size-in-bits='64' id='type-id-150'/>
-    <reference-type-def kind='lvalue' type-id='type-id-151' size-in-bits='64' id='type-id-152'/>
-    <reference-type-def kind='rvalue' type-id='type-id-151' size-in-bits='64' id='type-id-153'/>
-    <pointer-type-def type-id='type-id-151' size-in-bits='64' id='type-id-154'/>
-    <reference-type-def kind='lvalue' type-id='type-id-155' size-in-bits='64' id='type-id-156'/>
-    <reference-type-def kind='rvalue' type-id='type-id-155' size-in-bits='64' id='type-id-157'/>
-    <pointer-type-def type-id='type-id-155' size-in-bits='64' id='type-id-158'/>
-    <reference-type-def kind='lvalue' type-id='type-id-159' size-in-bits='64' id='type-id-160'/>
-    <reference-type-def kind='rvalue' type-id='type-id-159' size-in-bits='64' id='type-id-161'/>
-    <pointer-type-def type-id='type-id-159' size-in-bits='64' id='type-id-162'/>
-    <pointer-type-def type-id='type-id-163' size-in-bits='64' id='type-id-164'/>
-    <pointer-type-def type-id='type-id-165' size-in-bits='64' id='type-id-166'/>
-    <pointer-type-def type-id='type-id-167' size-in-bits='64' id='type-id-168'/>
-    <reference-type-def kind='rvalue' type-id='type-id-169' size-in-bits='64' id='type-id-170'/>
-    <pointer-type-def type-id='type-id-169' size-in-bits='64' id='type-id-171'/>
-    <pointer-type-def type-id='type-id-172' size-in-bits='64' id='type-id-173'/>
-    <reference-type-def kind='rvalue' type-id='type-id-174' size-in-bits='64' id='type-id-175'/>
-    <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-176'/>
-    <pointer-type-def type-id='type-id-177' size-in-bits='64' id='type-id-178'/>
-    <reference-type-def kind='rvalue' type-id='type-id-179' size-in-bits='64' id='type-id-180'/>
-    <pointer-type-def type-id='type-id-179' size-in-bits='64' id='type-id-181'/>
-    <pointer-type-def type-id='type-id-182' size-in-bits='64' id='type-id-183'/>
-    <reference-type-def kind='rvalue' type-id='type-id-184' size-in-bits='64' id='type-id-185'/>
-    <reference-type-def kind='rvalue' type-id='type-id-186' size-in-bits='64' id='type-id-187'/>
-    <reference-type-def kind='rvalue' type-id='type-id-188' size-in-bits='64' id='type-id-189'/>
-    <reference-type-def kind='rvalue' type-id='type-id-190' size-in-bits='64' id='type-id-191'/>
-    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-192'/>
-    <qualified-type-def type-id='type-id-192' restrict='yes' id='type-id-193'/>
+    <pointer-type-def type-id='type-id-145' size-in-bits='64' id='type-id-146'/>
+    <pointer-type-def type-id='type-id-147' size-in-bits='64' id='type-id-148'/>
+    <pointer-type-def type-id='type-id-149' size-in-bits='64' id='type-id-150'/>
+    <pointer-type-def type-id='type-id-151' size-in-bits='64' id='type-id-152'/>
+    <pointer-type-def type-id='type-id-153' size-in-bits='64' id='type-id-154'/>
+    <pointer-type-def type-id='type-id-79' size-in-bits='64' id='type-id-66'/>
+    <pointer-type-def type-id='type-id-54' size-in-bits='64' id='type-id-55'/>
+    <pointer-type-def type-id='type-id-82' size-in-bits='64' id='type-id-155'/>
+    <pointer-type-def type-id='type-id-156' size-in-bits='64' id='type-id-157'/>
+    <reference-type-def kind='lvalue' type-id='type-id-157' size-in-bits='64' id='type-id-158'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1' size-in-bits='64' id='type-id-159'/>
+    <reference-type-def kind='lvalue' type-id='type-id-160' size-in-bits='64' id='type-id-161'/>
+    <reference-type-def kind='rvalue' type-id='type-id-160' size-in-bits='64' id='type-id-162'/>
+    <pointer-type-def type-id='type-id-160' size-in-bits='64' id='type-id-163'/>
+    <reference-type-def kind='lvalue' type-id='type-id-164' size-in-bits='64' id='type-id-165'/>
+    <reference-type-def kind='rvalue' type-id='type-id-164' size-in-bits='64' id='type-id-166'/>
+    <pointer-type-def type-id='type-id-164' size-in-bits='64' id='type-id-167'/>
+    <reference-type-def kind='lvalue' type-id='type-id-168' size-in-bits='64' id='type-id-169'/>
+    <reference-type-def kind='rvalue' type-id='type-id-168' size-in-bits='64' id='type-id-170'/>
+    <pointer-type-def type-id='type-id-168' size-in-bits='64' id='type-id-171'/>
+    <reference-type-def kind='lvalue' type-id='type-id-172' size-in-bits='64' id='type-id-173'/>
+    <reference-type-def kind='rvalue' type-id='type-id-172' size-in-bits='64' id='type-id-174'/>
+    <pointer-type-def type-id='type-id-172' size-in-bits='64' id='type-id-175'/>
+    <pointer-type-def type-id='type-id-176' size-in-bits='64' id='type-id-177'/>
+    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-179'/>
+    <pointer-type-def type-id='type-id-180' size-in-bits='64' id='type-id-181'/>
+    <reference-type-def kind='rvalue' type-id='type-id-182' size-in-bits='64' id='type-id-183'/>
+    <pointer-type-def type-id='type-id-182' size-in-bits='64' id='type-id-184'/>
+    <pointer-type-def type-id='type-id-185' size-in-bits='64' id='type-id-186'/>
+    <reference-type-def kind='rvalue' type-id='type-id-187' size-in-bits='64' id='type-id-188'/>
+    <pointer-type-def type-id='type-id-187' size-in-bits='64' id='type-id-189'/>
+    <pointer-type-def type-id='type-id-190' size-in-bits='64' id='type-id-191'/>
+    <reference-type-def kind='rvalue' type-id='type-id-192' size-in-bits='64' id='type-id-193'/>
     <pointer-type-def type-id='type-id-192' size-in-bits='64' id='type-id-194'/>
-    <qualified-type-def type-id='type-id-194' restrict='yes' id='type-id-195'/>
-    <qualified-type-def type-id='type-id-114' const='yes' id='type-id-196'/>
-    <pointer-type-def type-id='type-id-196' size-in-bits='64' id='type-id-197'/>
-    <qualified-type-def type-id='type-id-116' const='yes' id='type-id-198'/>
-    <pointer-type-def type-id='type-id-198' size-in-bits='64' id='type-id-199'/>
-    <qualified-type-def type-id='type-id-118' const='yes' id='type-id-200'/>
-    <pointer-type-def type-id='type-id-200' size-in-bits='64' id='type-id-201'/>
-    <qualified-type-def type-id='type-id-120' const='yes' id='type-id-202'/>
-    <reference-type-def kind='lvalue' type-id='type-id-202' size-in-bits='64' id='type-id-203'/>
-    <pointer-type-def type-id='type-id-202' size-in-bits='64' id='type-id-204'/>
-    <qualified-type-def type-id='type-id-122' const='yes' id='type-id-205'/>
-    <reference-type-def kind='lvalue' type-id='type-id-205' size-in-bits='64' id='type-id-206'/>
+    <pointer-type-def type-id='type-id-195' size-in-bits='64' id='type-id-196'/>
+    <reference-type-def kind='rvalue' type-id='type-id-197' size-in-bits='64' id='type-id-198'/>
+    <reference-type-def kind='rvalue' type-id='type-id-199' size-in-bits='64' id='type-id-200'/>
+    <reference-type-def kind='rvalue' type-id='type-id-201' size-in-bits='64' id='type-id-202'/>
+    <reference-type-def kind='rvalue' type-id='type-id-203' size-in-bits='64' id='type-id-204'/>
+    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-205'/>
+    <qualified-type-def type-id='type-id-205' restrict='yes' id='type-id-206'/>
     <pointer-type-def type-id='type-id-205' size-in-bits='64' id='type-id-207'/>
-    <qualified-type-def type-id='type-id-124' const='yes' id='type-id-208'/>
-    <reference-type-def kind='lvalue' type-id='type-id-208' size-in-bits='64' id='type-id-209'/>
-    <pointer-type-def type-id='type-id-208' size-in-bits='64' id='type-id-210'/>
-    <qualified-type-def type-id='type-id-126' const='yes' id='type-id-211'/>
-    <reference-type-def kind='lvalue' type-id='type-id-211' size-in-bits='64' id='type-id-212'/>
-    <pointer-type-def type-id='type-id-211' size-in-bits='64' id='type-id-213'/>
-    <qualified-type-def type-id='type-id-128' const='yes' id='type-id-214'/>
-    <reference-type-def kind='lvalue' type-id='type-id-214' size-in-bits='64' id='type-id-215'/>
-    <pointer-type-def type-id='type-id-214' size-in-bits='64' id='type-id-216'/>
-    <qualified-type-def type-id='type-id-130' const='yes' id='type-id-217'/>
-    <reference-type-def kind='lvalue' type-id='type-id-217' size-in-bits='64' id='type-id-218'/>
-    <pointer-type-def type-id='type-id-217' size-in-bits='64' id='type-id-219'/>
-    <qualified-type-def type-id='type-id-132' const='yes' id='type-id-220'/>
-    <reference-type-def kind='lvalue' type-id='type-id-220' size-in-bits='64' id='type-id-221'/>
-    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-222'/>
-    <qualified-type-def type-id='type-id-134' const='yes' id='type-id-223'/>
-    <reference-type-def kind='lvalue' type-id='type-id-223' size-in-bits='64' id='type-id-224'/>
-    <pointer-type-def type-id='type-id-223' size-in-bits='64' id='type-id-225'/>
-    <qualified-type-def type-id='type-id-136' const='yes' id='type-id-226'/>
-    <reference-type-def kind='lvalue' type-id='type-id-226' size-in-bits='64' id='type-id-227'/>
-    <pointer-type-def type-id='type-id-226' size-in-bits='64' id='type-id-228'/>
-    <qualified-type-def type-id='type-id-138' const='yes' id='type-id-229'/>
-    <reference-type-def kind='lvalue' type-id='type-id-229' size-in-bits='64' id='type-id-230'/>
-    <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-231'/>
-    <qualified-type-def type-id='type-id-140' const='yes' id='type-id-232'/>
-    <reference-type-def kind='lvalue' type-id='type-id-232' size-in-bits='64' id='type-id-233'/>
-    <pointer-type-def type-id='type-id-232' size-in-bits='64' id='type-id-234'/>
-    <qualified-type-def type-id='type-id-72' const='yes' id='type-id-235'/>
-    <pointer-type-def type-id='type-id-235' size-in-bits='64' id='type-id-97'/>
-    <qualified-type-def type-id='type-id-1' const='yes' id='type-id-236'/>
+    <qualified-type-def type-id='type-id-207' restrict='yes' id='type-id-208'/>
+    <qualified-type-def type-id='type-id-127' const='yes' id='type-id-209'/>
+    <pointer-type-def type-id='type-id-209' size-in-bits='64' id='type-id-210'/>
+    <qualified-type-def type-id='type-id-129' const='yes' id='type-id-211'/>
+    <pointer-type-def type-id='type-id-211' size-in-bits='64' id='type-id-212'/>
+    <qualified-type-def type-id='type-id-131' const='yes' id='type-id-213'/>
+    <pointer-type-def type-id='type-id-213' size-in-bits='64' id='type-id-214'/>
+    <qualified-type-def type-id='type-id-133' const='yes' id='type-id-215'/>
+    <reference-type-def kind='lvalue' type-id='type-id-215' size-in-bits='64' id='type-id-216'/>
+    <pointer-type-def type-id='type-id-215' size-in-bits='64' id='type-id-217'/>
+    <qualified-type-def type-id='type-id-135' const='yes' id='type-id-218'/>
+    <reference-type-def kind='lvalue' type-id='type-id-218' size-in-bits='64' id='type-id-219'/>
+    <pointer-type-def type-id='type-id-218' size-in-bits='64' id='type-id-220'/>
+    <qualified-type-def type-id='type-id-137' const='yes' id='type-id-221'/>
+    <reference-type-def kind='lvalue' type-id='type-id-221' size-in-bits='64' id='type-id-222'/>
+    <pointer-type-def type-id='type-id-221' size-in-bits='64' id='type-id-223'/>
+    <qualified-type-def type-id='type-id-139' const='yes' id='type-id-224'/>
+    <reference-type-def kind='lvalue' type-id='type-id-224' size-in-bits='64' id='type-id-225'/>
+    <pointer-type-def type-id='type-id-224' size-in-bits='64' id='type-id-226'/>
+    <qualified-type-def type-id='type-id-141' const='yes' id='type-id-227'/>
+    <reference-type-def kind='lvalue' type-id='type-id-227' size-in-bits='64' id='type-id-228'/>
+    <pointer-type-def type-id='type-id-227' size-in-bits='64' id='type-id-229'/>
+    <qualified-type-def type-id='type-id-143' const='yes' id='type-id-230'/>
+    <reference-type-def kind='lvalue' type-id='type-id-230' size-in-bits='64' id='type-id-231'/>
+    <pointer-type-def type-id='type-id-230' size-in-bits='64' id='type-id-232'/>
+    <qualified-type-def type-id='type-id-145' const='yes' id='type-id-233'/>
+    <reference-type-def kind='lvalue' type-id='type-id-233' size-in-bits='64' id='type-id-234'/>
+    <pointer-type-def type-id='type-id-233' size-in-bits='64' id='type-id-235'/>
+    <qualified-type-def type-id='type-id-147' const='yes' id='type-id-236'/>
     <reference-type-def kind='lvalue' type-id='type-id-236' size-in-bits='64' id='type-id-237'/>
-    <qualified-type-def type-id='type-id-147' const='yes' id='type-id-238'/>
-    <reference-type-def kind='lvalue' type-id='type-id-238' size-in-bits='64' id='type-id-239'/>
-    <pointer-type-def type-id='type-id-238' size-in-bits='64' id='type-id-240'/>
-    <qualified-type-def type-id='type-id-151' const='yes' id='type-id-241'/>
-    <reference-type-def kind='lvalue' type-id='type-id-241' size-in-bits='64' id='type-id-242'/>
-    <pointer-type-def type-id='type-id-241' size-in-bits='64' id='type-id-243'/>
-    <qualified-type-def type-id='type-id-155' const='yes' id='type-id-244'/>
-    <reference-type-def kind='lvalue' type-id='type-id-244' size-in-bits='64' id='type-id-245'/>
-    <pointer-type-def type-id='type-id-244' size-in-bits='64' id='type-id-246'/>
-    <qualified-type-def type-id='type-id-159' const='yes' id='type-id-247'/>
-    <reference-type-def kind='lvalue' type-id='type-id-247' size-in-bits='64' id='type-id-248'/>
-    <pointer-type-def type-id='type-id-247' size-in-bits='64' id='type-id-249'/>
-    <qualified-type-def type-id='type-id-163' const='yes' id='type-id-250'/>
-    <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-251'/>
-    <qualified-type-def type-id='type-id-165' const='yes' id='type-id-252'/>
-    <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
-    <qualified-type-def type-id='type-id-167' const='yes' id='type-id-254'/>
-    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
-    <qualified-type-def type-id='type-id-169' const='yes' id='type-id-256'/>
-    <reference-type-def kind='lvalue' type-id='type-id-256' size-in-bits='64' id='type-id-257'/>
-    <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-258'/>
-    <qualified-type-def type-id='type-id-172' const='yes' id='type-id-259'/>
-    <pointer-type-def type-id='type-id-259' size-in-bits='64' id='type-id-260'/>
-    <qualified-type-def type-id='type-id-174' const='yes' id='type-id-261'/>
-    <reference-type-def kind='lvalue' type-id='type-id-261' size-in-bits='64' id='type-id-262'/>
-    <pointer-type-def type-id='type-id-261' size-in-bits='64' id='type-id-263'/>
-    <qualified-type-def type-id='type-id-177' const='yes' id='type-id-264'/>
-    <pointer-type-def type-id='type-id-264' size-in-bits='64' id='type-id-265'/>
-    <qualified-type-def type-id='type-id-179' const='yes' id='type-id-266'/>
-    <reference-type-def kind='lvalue' type-id='type-id-266' size-in-bits='64' id='type-id-267'/>
-    <pointer-type-def type-id='type-id-266' size-in-bits='64' id='type-id-268'/>
+    <pointer-type-def type-id='type-id-236' size-in-bits='64' id='type-id-238'/>
+    <qualified-type-def type-id='type-id-149' const='yes' id='type-id-239'/>
+    <reference-type-def kind='lvalue' type-id='type-id-239' size-in-bits='64' id='type-id-240'/>
+    <pointer-type-def type-id='type-id-239' size-in-bits='64' id='type-id-241'/>
+    <qualified-type-def type-id='type-id-151' const='yes' id='type-id-242'/>
+    <reference-type-def kind='lvalue' type-id='type-id-242' size-in-bits='64' id='type-id-243'/>
+    <pointer-type-def type-id='type-id-242' size-in-bits='64' id='type-id-244'/>
+    <qualified-type-def type-id='type-id-153' const='yes' id='type-id-245'/>
+    <reference-type-def kind='lvalue' type-id='type-id-245' size-in-bits='64' id='type-id-246'/>
+    <pointer-type-def type-id='type-id-245' size-in-bits='64' id='type-id-247'/>
+    <qualified-type-def type-id='type-id-77' const='yes' id='type-id-248'/>
+    <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-102'/>
+    <qualified-type-def type-id='type-id-1' const='yes' id='type-id-249'/>
+    <reference-type-def kind='lvalue' type-id='type-id-249' size-in-bits='64' id='type-id-250'/>
+    <qualified-type-def type-id='type-id-160' const='yes' id='type-id-251'/>
+    <reference-type-def kind='lvalue' type-id='type-id-251' size-in-bits='64' id='type-id-252'/>
+    <pointer-type-def type-id='type-id-251' size-in-bits='64' id='type-id-253'/>
+    <qualified-type-def type-id='type-id-164' const='yes' id='type-id-254'/>
+    <reference-type-def kind='lvalue' type-id='type-id-254' size-in-bits='64' id='type-id-255'/>
+    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-256'/>
+    <qualified-type-def type-id='type-id-168' const='yes' id='type-id-257'/>
+    <reference-type-def kind='lvalue' type-id='type-id-257' size-in-bits='64' id='type-id-258'/>
+    <pointer-type-def type-id='type-id-257' size-in-bits='64' id='type-id-259'/>
+    <qualified-type-def type-id='type-id-172' const='yes' id='type-id-260'/>
+    <reference-type-def kind='lvalue' type-id='type-id-260' size-in-bits='64' id='type-id-261'/>
+    <pointer-type-def type-id='type-id-260' size-in-bits='64' id='type-id-262'/>
+    <qualified-type-def type-id='type-id-176' const='yes' id='type-id-263'/>
+    <pointer-type-def type-id='type-id-263' size-in-bits='64' id='type-id-264'/>
+    <qualified-type-def type-id='type-id-178' const='yes' id='type-id-265'/>
+    <pointer-type-def type-id='type-id-265' size-in-bits='64' id='type-id-266'/>
+    <qualified-type-def type-id='type-id-180' const='yes' id='type-id-267'/>
+    <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-268'/>
     <qualified-type-def type-id='type-id-182' const='yes' id='type-id-269'/>
-    <pointer-type-def type-id='type-id-269' size-in-bits='64' id='type-id-270'/>
+    <reference-type-def kind='lvalue' type-id='type-id-269' size-in-bits='64' id='type-id-270'/>
+    <pointer-type-def type-id='type-id-269' size-in-bits='64' id='type-id-271'/>
+    <qualified-type-def type-id='type-id-185' const='yes' id='type-id-272'/>
+    <pointer-type-def type-id='type-id-272' size-in-bits='64' id='type-id-273'/>
+    <qualified-type-def type-id='type-id-187' const='yes' id='type-id-274'/>
+    <reference-type-def kind='lvalue' type-id='type-id-274' size-in-bits='64' id='type-id-275'/>
+    <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-276'/>
+    <qualified-type-def type-id='type-id-190' const='yes' id='type-id-277'/>
+    <pointer-type-def type-id='type-id-277' size-in-bits='64' id='type-id-278'/>
+    <qualified-type-def type-id='type-id-192' const='yes' id='type-id-279'/>
+    <reference-type-def kind='lvalue' type-id='type-id-279' size-in-bits='64' id='type-id-280'/>
+    <pointer-type-def type-id='type-id-279' size-in-bits='64' id='type-id-281'/>
+    <qualified-type-def type-id='type-id-195' const='yes' id='type-id-282'/>
+    <pointer-type-def type-id='type-id-282' size-in-bits='64' id='type-id-283'/>
     <qualified-type-def type-id='type-id-5' const='yes' id='type-id-29'/>
-    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-58'/>
-    <qualified-type-def type-id='type-id-58' restrict='yes' id='type-id-271'/>
-    <reference-type-def kind='lvalue' type-id='type-id-58' size-in-bits='64' id='type-id-272'/>
-    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-273'/>
-    <qualified-type-def type-id='type-id-273' restrict='yes' id='type-id-274'/>
-    <reference-type-def kind='lvalue' type-id='type-id-30' size-in-bits='64' id='type-id-275'/>
-    <reference-type-def kind='lvalue' type-id='type-id-31' size-in-bits='64' id='type-id-276'/>
-    <reference-type-def kind='lvalue' type-id='type-id-32' size-in-bits='64' id='type-id-277'/>
-    <reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-278'/>
-    <reference-type-def kind='lvalue' type-id='type-id-34' size-in-bits='64' id='type-id-279'/>
-    <reference-type-def kind='lvalue' type-id='type-id-35' size-in-bits='64' id='type-id-280'/>
-    <qualified-type-def type-id='type-id-80' const='yes' id='type-id-281'/>
-    <pointer-type-def type-id='type-id-281' size-in-bits='64' id='type-id-282'/>
-    <qualified-type-def type-id='type-id-40' const='yes' id='type-id-283'/>
-    <qualified-type-def type-id='type-id-42' const='yes' id='type-id-284'/>
-    <reference-type-def kind='lvalue' type-id='type-id-284' size-in-bits='64' id='type-id-285'/>
-    <qualified-type-def type-id='type-id-43' const='yes' id='type-id-286'/>
-    <reference-type-def kind='lvalue' type-id='type-id-286' size-in-bits='64' id='type-id-287'/>
-    <qualified-type-def type-id='type-id-88' const='yes' id='type-id-288'/>
-    <pointer-type-def type-id='type-id-288' size-in-bits='64' id='type-id-289'/>
-    <qualified-type-def type-id='type-id-290' const='yes' id='type-id-291'/>
-    <pointer-type-def type-id='type-id-291' size-in-bits='64' id='type-id-292'/>
-    <qualified-type-def type-id='type-id-293' const='yes' id='type-id-294'/>
-    <reference-type-def kind='lvalue' type-id='type-id-294' size-in-bits='64' id='type-id-295'/>
-    <pointer-type-def type-id='type-id-294' size-in-bits='64' id='type-id-296'/>
-    <qualified-type-def type-id='type-id-297' const='yes' id='type-id-298'/>
-    <reference-type-def kind='lvalue' type-id='type-id-298' size-in-bits='64' id='type-id-299'/>
-    <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-300'/>
-    <qualified-type-def type-id='type-id-301' const='yes' id='type-id-302'/>
-    <reference-type-def kind='lvalue' type-id='type-id-302' size-in-bits='64' id='type-id-303'/>
-    <qualified-type-def type-id='type-id-304' const='yes' id='type-id-305'/>
-    <reference-type-def kind='lvalue' type-id='type-id-305' size-in-bits='64' id='type-id-306'/>
-    <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-307'/>
-    <qualified-type-def type-id='type-id-308' const='yes' id='type-id-309'/>
-    <pointer-type-def type-id='type-id-309' size-in-bits='64' id='type-id-310'/>
-    <qualified-type-def type-id='type-id-311' const='yes' id='type-id-312'/>
-    <pointer-type-def type-id='type-id-312' size-in-bits='64' id='type-id-313'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-63'/>
+    <qualified-type-def type-id='type-id-63' restrict='yes' id='type-id-284'/>
+    <reference-type-def kind='lvalue' type-id='type-id-63' size-in-bits='64' id='type-id-285'/>
+    <pointer-type-def type-id='type-id-63' size-in-bits='64' id='type-id-286'/>
+    <qualified-type-def type-id='type-id-286' restrict='yes' id='type-id-287'/>
+    <reference-type-def kind='lvalue' type-id='type-id-30' size-in-bits='64' id='type-id-288'/>
+    <reference-type-def kind='lvalue' type-id='type-id-31' size-in-bits='64' id='type-id-289'/>
+    <reference-type-def kind='lvalue' type-id='type-id-32' size-in-bits='64' id='type-id-290'/>
+    <reference-type-def kind='lvalue' type-id='type-id-33' size-in-bits='64' id='type-id-291'/>
+    <reference-type-def kind='lvalue' type-id='type-id-34' size-in-bits='64' id='type-id-292'/>
+    <reference-type-def kind='lvalue' type-id='type-id-35' size-in-bits='64' id='type-id-293'/>
+    <qualified-type-def type-id='type-id-85' const='yes' id='type-id-294'/>
+    <pointer-type-def type-id='type-id-294' size-in-bits='64' id='type-id-295'/>
+    <qualified-type-def type-id='type-id-40' const='yes' id='type-id-296'/>
+    <qualified-type-def type-id='type-id-44' const='yes' id='type-id-297'/>
+    <reference-type-def kind='lvalue' type-id='type-id-297' size-in-bits='64' id='type-id-298'/>
+    <qualified-type-def type-id='type-id-45' const='yes' id='type-id-299'/>
+    <reference-type-def kind='lvalue' type-id='type-id-299' size-in-bits='64' id='type-id-300'/>
+    <qualified-type-def type-id='type-id-93' const='yes' id='type-id-301'/>
+    <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-302'/>
+    <qualified-type-def type-id='type-id-303' const='yes' id='type-id-304'/>
+    <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-305'/>
+    <qualified-type-def type-id='type-id-306' const='yes' id='type-id-307'/>
+    <reference-type-def kind='lvalue' type-id='type-id-307' size-in-bits='64' id='type-id-308'/>
+    <pointer-type-def type-id='type-id-307' size-in-bits='64' id='type-id-309'/>
+    <qualified-type-def type-id='type-id-310' const='yes' id='type-id-311'/>
+    <reference-type-def kind='lvalue' type-id='type-id-311' size-in-bits='64' id='type-id-312'/>
+    <pointer-type-def type-id='type-id-311' size-in-bits='64' id='type-id-313'/>
     <qualified-type-def type-id='type-id-314' const='yes' id='type-id-315'/>
-    <pointer-type-def type-id='type-id-315' size-in-bits='64' id='type-id-316'/>
+    <reference-type-def kind='lvalue' type-id='type-id-315' size-in-bits='64' id='type-id-316'/>
     <qualified-type-def type-id='type-id-317' const='yes' id='type-id-318'/>
     <reference-type-def kind='lvalue' type-id='type-id-318' size-in-bits='64' id='type-id-319'/>
     <pointer-type-def type-id='type-id-318' size-in-bits='64' id='type-id-320'/>
     <qualified-type-def type-id='type-id-321' const='yes' id='type-id-322'/>
-    <qualified-type-def type-id='type-id-323' const='yes' id='type-id-324'/>
-    <reference-type-def kind='lvalue' type-id='type-id-324' size-in-bits='64' id='type-id-325'/>
-    <pointer-type-def type-id='type-id-324' size-in-bits='64' id='type-id-326'/>
+    <pointer-type-def type-id='type-id-322' size-in-bits='64' id='type-id-323'/>
+    <qualified-type-def type-id='type-id-324' const='yes' id='type-id-325'/>
+    <pointer-type-def type-id='type-id-325' size-in-bits='64' id='type-id-326'/>
     <qualified-type-def type-id='type-id-327' const='yes' id='type-id-328'/>
-    <qualified-type-def type-id='type-id-329' const='yes' id='type-id-330'/>
-    <reference-type-def kind='lvalue' type-id='type-id-330' size-in-bits='64' id='type-id-331'/>
-    <pointer-type-def type-id='type-id-330' size-in-bits='64' id='type-id-332'/>
-    <qualified-type-def type-id='type-id-333' const='yes' id='type-id-334'/>
-    <reference-type-def kind='lvalue' type-id='type-id-334' size-in-bits='64' id='type-id-335'/>
-    <pointer-type-def type-id='type-id-334' size-in-bits='64' id='type-id-336'/>
-    <qualified-type-def type-id='type-id-337' const='yes' id='type-id-338'/>
-    <reference-type-def kind='lvalue' type-id='type-id-338' size-in-bits='64' id='type-id-339'/>
+    <pointer-type-def type-id='type-id-328' size-in-bits='64' id='type-id-329'/>
+    <qualified-type-def type-id='type-id-330' const='yes' id='type-id-331'/>
+    <reference-type-def kind='lvalue' type-id='type-id-331' size-in-bits='64' id='type-id-332'/>
+    <pointer-type-def type-id='type-id-331' size-in-bits='64' id='type-id-333'/>
+    <qualified-type-def type-id='type-id-334' const='yes' id='type-id-335'/>
+    <qualified-type-def type-id='type-id-336' const='yes' id='type-id-337'/>
+    <reference-type-def kind='lvalue' type-id='type-id-337' size-in-bits='64' id='type-id-338'/>
+    <pointer-type-def type-id='type-id-337' size-in-bits='64' id='type-id-339'/>
     <qualified-type-def type-id='type-id-340' const='yes' id='type-id-341'/>
-    <reference-type-def kind='lvalue' type-id='type-id-341' size-in-bits='64' id='type-id-342'/>
-    <qualified-type-def type-id='type-id-343' const='yes' id='type-id-344'/>
-    <reference-type-def kind='lvalue' type-id='type-id-344' size-in-bits='64' id='type-id-345'/>
-    <pointer-type-def type-id='type-id-344' size-in-bits='64' id='type-id-346'/>
-    <qualified-type-def type-id='type-id-347' const='yes' id='type-id-348'/>
-    <reference-type-def kind='lvalue' type-id='type-id-348' size-in-bits='64' id='type-id-349'/>
-    <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-350'/>
-    <qualified-type-def type-id='type-id-351' const='yes' id='type-id-352'/>
-    <pointer-type-def type-id='type-id-352' size-in-bits='64' id='type-id-353'/>
-    <qualified-type-def type-id='type-id-354' const='yes' id='type-id-355'/>
-    <reference-type-def kind='lvalue' type-id='type-id-355' size-in-bits='64' id='type-id-356'/>
-    <pointer-type-def type-id='type-id-355' size-in-bits='64' id='type-id-357'/>
-    <qualified-type-def type-id='type-id-358' const='yes' id='type-id-359'/>
-    <reference-type-def kind='lvalue' type-id='type-id-359' size-in-bits='64' id='type-id-360'/>
-    <pointer-type-def type-id='type-id-359' size-in-bits='64' id='type-id-361'/>
-    <qualified-type-def type-id='type-id-362' const='yes' id='type-id-363'/>
-    <pointer-type-def type-id='type-id-363' size-in-bits='64' id='type-id-364'/>
-    <qualified-type-def type-id='type-id-365' const='yes' id='type-id-366'/>
-    <pointer-type-def type-id='type-id-366' size-in-bits='64' id='type-id-367'/>
-    <qualified-type-def type-id='type-id-368' const='yes' id='type-id-369'/>
-    <reference-type-def kind='lvalue' type-id='type-id-369' size-in-bits='64' id='type-id-370'/>
-    <pointer-type-def type-id='type-id-369' size-in-bits='64' id='type-id-371'/>
-    <qualified-type-def type-id='type-id-372' const='yes' id='type-id-373'/>
-    <reference-type-def kind='lvalue' type-id='type-id-373' size-in-bits='64' id='type-id-374'/>
-    <pointer-type-def type-id='type-id-373' size-in-bits='64' id='type-id-375'/>
-    <qualified-type-def type-id='type-id-376' const='yes' id='type-id-377'/>
-    <reference-type-def kind='lvalue' type-id='type-id-377' size-in-bits='64' id='type-id-378'/>
-    <pointer-type-def type-id='type-id-377' size-in-bits='64' id='type-id-379'/>
-    <qualified-type-def type-id='type-id-380' const='yes' id='type-id-381'/>
-    <reference-type-def kind='lvalue' type-id='type-id-381' size-in-bits='64' id='type-id-382'/>
-    <pointer-type-def type-id='type-id-381' size-in-bits='64' id='type-id-383'/>
-    <qualified-type-def type-id='type-id-384' const='yes' id='type-id-385'/>
-    <reference-type-def kind='lvalue' type-id='type-id-385' size-in-bits='64' id='type-id-386'/>
-    <pointer-type-def type-id='type-id-385' size-in-bits='64' id='type-id-387'/>
-    <qualified-type-def type-id='type-id-388' const='yes' id='type-id-389'/>
-    <reference-type-def kind='lvalue' type-id='type-id-389' size-in-bits='64' id='type-id-390'/>
-    <pointer-type-def type-id='type-id-389' size-in-bits='64' id='type-id-391'/>
-    <qualified-type-def type-id='type-id-392' const='yes' id='type-id-393'/>
-    <reference-type-def kind='lvalue' type-id='type-id-393' size-in-bits='64' id='type-id-394'/>
-    <qualified-type-def type-id='type-id-395' const='yes' id='type-id-396'/>
-    <reference-type-def kind='lvalue' type-id='type-id-396' size-in-bits='64' id='type-id-397'/>
-    <qualified-type-def type-id='type-id-398' const='yes' id='type-id-399'/>
-    <reference-type-def kind='lvalue' type-id='type-id-399' size-in-bits='64' id='type-id-400'/>
-    <pointer-type-def type-id='type-id-399' size-in-bits='64' id='type-id-401'/>
-    <qualified-type-def type-id='type-id-402' const='yes' id='type-id-403'/>
-    <reference-type-def kind='lvalue' type-id='type-id-403' size-in-bits='64' id='type-id-404'/>
-    <pointer-type-def type-id='type-id-403' size-in-bits='64' id='type-id-405'/>
-    <qualified-type-def type-id='type-id-406' const='yes' id='type-id-407'/>
-    <reference-type-def kind='lvalue' type-id='type-id-407' size-in-bits='64' id='type-id-408'/>
-    <qualified-type-def type-id='type-id-409' const='yes' id='type-id-410'/>
-    <reference-type-def kind='lvalue' type-id='type-id-410' size-in-bits='64' id='type-id-411'/>
-    <qualified-type-def type-id='type-id-412' const='yes' id='type-id-413'/>
-    <reference-type-def kind='lvalue' type-id='type-id-413' size-in-bits='64' id='type-id-414'/>
-    <pointer-type-def type-id='type-id-413' size-in-bits='64' id='type-id-415'/>
-    <qualified-type-def type-id='type-id-416' const='yes' id='type-id-417'/>
-    <reference-type-def kind='lvalue' type-id='type-id-417' size-in-bits='64' id='type-id-418'/>
-    <pointer-type-def type-id='type-id-417' size-in-bits='64' id='type-id-419'/>
-    <qualified-type-def type-id='type-id-420' const='yes' id='type-id-421'/>
-    <pointer-type-def type-id='type-id-421' size-in-bits='64' id='type-id-422'/>
-    <qualified-type-def type-id='type-id-423' const='yes' id='type-id-424'/>
-    <reference-type-def kind='lvalue' type-id='type-id-424' size-in-bits='64' id='type-id-425'/>
-    <pointer-type-def type-id='type-id-424' size-in-bits='64' id='type-id-426'/>
-    <qualified-type-def type-id='type-id-427' const='yes' id='type-id-428'/>
-    <reference-type-def kind='lvalue' type-id='type-id-428' size-in-bits='64' id='type-id-429'/>
-    <pointer-type-def type-id='type-id-428' size-in-bits='64' id='type-id-430'/>
-    <qualified-type-def type-id='type-id-431' const='yes' id='type-id-432'/>
-    <reference-type-def kind='lvalue' type-id='type-id-432' size-in-bits='64' id='type-id-433'/>
-    <qualified-type-def type-id='type-id-434' const='yes' id='type-id-435'/>
-    <pointer-type-def type-id='type-id-435' size-in-bits='64' id='type-id-436'/>
-    <qualified-type-def type-id='type-id-437' const='yes' id='type-id-438'/>
-    <reference-type-def kind='lvalue' type-id='type-id-438' size-in-bits='64' id='type-id-439'/>
-    <pointer-type-def type-id='type-id-438' size-in-bits='64' id='type-id-440'/>
-    <qualified-type-def type-id='type-id-441' const='yes' id='type-id-442'/>
-    <reference-type-def kind='lvalue' type-id='type-id-442' size-in-bits='64' id='type-id-443'/>
-    <pointer-type-def type-id='type-id-442' size-in-bits='64' id='type-id-444'/>
-    <qualified-type-def type-id='type-id-445' const='yes' id='type-id-446'/>
-    <reference-type-def kind='lvalue' type-id='type-id-446' size-in-bits='64' id='type-id-447'/>
-    <pointer-type-def type-id='type-id-446' size-in-bits='64' id='type-id-448'/>
-    <qualified-type-def type-id='type-id-449' const='yes' id='type-id-450'/>
-    <pointer-type-def type-id='type-id-450' size-in-bits='64' id='type-id-451'/>
-    <qualified-type-def type-id='type-id-452' const='yes' id='type-id-453'/>
-    <pointer-type-def type-id='type-id-453' size-in-bits='64' id='type-id-454'/>
-    <qualified-type-def type-id='type-id-455' const='yes' id='type-id-456'/>
-    <pointer-type-def type-id='type-id-456' size-in-bits='64' id='type-id-457'/>
-    <qualified-type-def type-id='type-id-458' const='yes' id='type-id-459'/>
-    <reference-type-def kind='lvalue' type-id='type-id-459' size-in-bits='64' id='type-id-460'/>
-    <pointer-type-def type-id='type-id-459' size-in-bits='64' id='type-id-461'/>
-    <qualified-type-def type-id='type-id-462' const='yes' id='type-id-463'/>
-    <reference-type-def kind='lvalue' type-id='type-id-463' size-in-bits='64' id='type-id-464'/>
-    <qualified-type-def type-id='type-id-465' const='yes' id='type-id-466'/>
-    <reference-type-def kind='lvalue' type-id='type-id-466' size-in-bits='64' id='type-id-467'/>
-    <qualified-type-def type-id='type-id-468' const='yes' id='type-id-469'/>
-    <reference-type-def kind='lvalue' type-id='type-id-469' size-in-bits='64' id='type-id-470'/>
-    <qualified-type-def type-id='type-id-471' const='yes' id='type-id-472'/>
-    <reference-type-def kind='lvalue' type-id='type-id-472' size-in-bits='64' id='type-id-473'/>
+    <qualified-type-def type-id='type-id-342' const='yes' id='type-id-343'/>
+    <reference-type-def kind='lvalue' type-id='type-id-343' size-in-bits='64' id='type-id-344'/>
+    <pointer-type-def type-id='type-id-343' size-in-bits='64' id='type-id-345'/>
+    <qualified-type-def type-id='type-id-346' const='yes' id='type-id-347'/>
+    <reference-type-def kind='lvalue' type-id='type-id-347' size-in-bits='64' id='type-id-348'/>
+    <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-349'/>
+    <qualified-type-def type-id='type-id-350' const='yes' id='type-id-351'/>
+    <reference-type-def kind='lvalue' type-id='type-id-351' size-in-bits='64' id='type-id-352'/>
+    <qualified-type-def type-id='type-id-353' const='yes' id='type-id-354'/>
+    <reference-type-def kind='lvalue' type-id='type-id-354' size-in-bits='64' id='type-id-355'/>
+    <qualified-type-def type-id='type-id-356' const='yes' id='type-id-357'/>
+    <reference-type-def kind='lvalue' type-id='type-id-357' size-in-bits='64' id='type-id-358'/>
+    <pointer-type-def type-id='type-id-357' size-in-bits='64' id='type-id-359'/>
+    <qualified-type-def type-id='type-id-360' const='yes' id='type-id-361'/>
+    <reference-type-def kind='lvalue' type-id='type-id-361' size-in-bits='64' id='type-id-362'/>
+    <pointer-type-def type-id='type-id-361' size-in-bits='64' id='type-id-363'/>
+    <qualified-type-def type-id='type-id-364' const='yes' id='type-id-365'/>
+    <pointer-type-def type-id='type-id-365' size-in-bits='64' id='type-id-366'/>
+    <qualified-type-def type-id='type-id-367' const='yes' id='type-id-368'/>
+    <reference-type-def kind='lvalue' type-id='type-id-368' size-in-bits='64' id='type-id-369'/>
+    <pointer-type-def type-id='type-id-368' size-in-bits='64' id='type-id-370'/>
+    <qualified-type-def type-id='type-id-371' const='yes' id='type-id-372'/>
+    <reference-type-def kind='lvalue' type-id='type-id-372' size-in-bits='64' id='type-id-373'/>
+    <pointer-type-def type-id='type-id-372' size-in-bits='64' id='type-id-374'/>
+    <qualified-type-def type-id='type-id-375' const='yes' id='type-id-376'/>
+    <pointer-type-def type-id='type-id-376' size-in-bits='64' id='type-id-377'/>
+    <qualified-type-def type-id='type-id-378' const='yes' id='type-id-379'/>
+    <pointer-type-def type-id='type-id-379' size-in-bits='64' id='type-id-380'/>
+    <qualified-type-def type-id='type-id-381' const='yes' id='type-id-382'/>
+    <reference-type-def kind='lvalue' type-id='type-id-382' size-in-bits='64' id='type-id-383'/>
+    <pointer-type-def type-id='type-id-382' size-in-bits='64' id='type-id-384'/>
+    <qualified-type-def type-id='type-id-385' const='yes' id='type-id-386'/>
+    <reference-type-def kind='lvalue' type-id='type-id-386' size-in-bits='64' id='type-id-387'/>
+    <pointer-type-def type-id='type-id-386' size-in-bits='64' id='type-id-388'/>
+    <qualified-type-def type-id='type-id-389' const='yes' id='type-id-390'/>
+    <reference-type-def kind='lvalue' type-id='type-id-390' size-in-bits='64' id='type-id-391'/>
+    <pointer-type-def type-id='type-id-390' size-in-bits='64' id='type-id-392'/>
+    <qualified-type-def type-id='type-id-393' const='yes' id='type-id-394'/>
+    <reference-type-def kind='lvalue' type-id='type-id-394' size-in-bits='64' id='type-id-395'/>
+    <pointer-type-def type-id='type-id-394' size-in-bits='64' id='type-id-396'/>
+    <qualified-type-def type-id='type-id-397' const='yes' id='type-id-398'/>
+    <reference-type-def kind='lvalue' type-id='type-id-398' size-in-bits='64' id='type-id-399'/>
+    <pointer-type-def type-id='type-id-398' size-in-bits='64' id='type-id-400'/>
+    <qualified-type-def type-id='type-id-401' const='yes' id='type-id-402'/>
+    <reference-type-def kind='lvalue' type-id='type-id-402' size-in-bits='64' id='type-id-403'/>
+    <pointer-type-def type-id='type-id-402' size-in-bits='64' id='type-id-404'/>
+    <qualified-type-def type-id='type-id-405' const='yes' id='type-id-406'/>
+    <reference-type-def kind='lvalue' type-id='type-id-406' size-in-bits='64' id='type-id-407'/>
+    <qualified-type-def type-id='type-id-408' const='yes' id='type-id-409'/>
+    <reference-type-def kind='lvalue' type-id='type-id-409' size-in-bits='64' id='type-id-410'/>
+    <qualified-type-def type-id='type-id-411' const='yes' id='type-id-412'/>
+    <reference-type-def kind='lvalue' type-id='type-id-412' size-in-bits='64' id='type-id-413'/>
+    <pointer-type-def type-id='type-id-412' size-in-bits='64' id='type-id-414'/>
+    <qualified-type-def type-id='type-id-415' const='yes' id='type-id-416'/>
+    <reference-type-def kind='lvalue' type-id='type-id-416' size-in-bits='64' id='type-id-417'/>
+    <pointer-type-def type-id='type-id-416' size-in-bits='64' id='type-id-418'/>
+    <qualified-type-def type-id='type-id-419' const='yes' id='type-id-420'/>
+    <reference-type-def kind='lvalue' type-id='type-id-420' size-in-bits='64' id='type-id-421'/>
+    <qualified-type-def type-id='type-id-422' const='yes' id='type-id-423'/>
+    <reference-type-def kind='lvalue' type-id='type-id-423' size-in-bits='64' id='type-id-424'/>
+    <qualified-type-def type-id='type-id-425' const='yes' id='type-id-426'/>
+    <reference-type-def kind='lvalue' type-id='type-id-426' size-in-bits='64' id='type-id-427'/>
+    <pointer-type-def type-id='type-id-426' size-in-bits='64' id='type-id-428'/>
+    <qualified-type-def type-id='type-id-429' const='yes' id='type-id-430'/>
+    <reference-type-def kind='lvalue' type-id='type-id-430' size-in-bits='64' id='type-id-431'/>
+    <pointer-type-def type-id='type-id-430' size-in-bits='64' id='type-id-432'/>
+    <qualified-type-def type-id='type-id-433' const='yes' id='type-id-434'/>
+    <pointer-type-def type-id='type-id-434' size-in-bits='64' id='type-id-435'/>
+    <qualified-type-def type-id='type-id-436' const='yes' id='type-id-437'/>
+    <reference-type-def kind='lvalue' type-id='type-id-437' size-in-bits='64' id='type-id-438'/>
+    <pointer-type-def type-id='type-id-437' size-in-bits='64' id='type-id-439'/>
+    <qualified-type-def type-id='type-id-440' const='yes' id='type-id-441'/>
+    <reference-type-def kind='lvalue' type-id='type-id-441' size-in-bits='64' id='type-id-442'/>
+    <pointer-type-def type-id='type-id-441' size-in-bits='64' id='type-id-443'/>
+    <qualified-type-def type-id='type-id-444' const='yes' id='type-id-445'/>
+    <reference-type-def kind='lvalue' type-id='type-id-445' size-in-bits='64' id='type-id-446'/>
+    <qualified-type-def type-id='type-id-447' const='yes' id='type-id-448'/>
+    <pointer-type-def type-id='type-id-448' size-in-bits='64' id='type-id-449'/>
+    <qualified-type-def type-id='type-id-118' const='yes' id='type-id-450'/>
+    <reference-type-def kind='lvalue' type-id='type-id-450' size-in-bits='64' id='type-id-451'/>
+    <pointer-type-def type-id='type-id-450' size-in-bits='64' id='type-id-452'/>
+    <qualified-type-def type-id='type-id-453' const='yes' id='type-id-454'/>
+    <reference-type-def kind='lvalue' type-id='type-id-454' size-in-bits='64' id='type-id-455'/>
+    <pointer-type-def type-id='type-id-454' size-in-bits='64' id='type-id-456'/>
+    <qualified-type-def type-id='type-id-457' const='yes' id='type-id-458'/>
+    <reference-type-def kind='lvalue' type-id='type-id-458' size-in-bits='64' id='type-id-459'/>
+    <pointer-type-def type-id='type-id-458' size-in-bits='64' id='type-id-460'/>
+    <qualified-type-def type-id='type-id-461' const='yes' id='type-id-462'/>
+    <pointer-type-def type-id='type-id-462' size-in-bits='64' id='type-id-463'/>
+    <qualified-type-def type-id='type-id-464' const='yes' id='type-id-465'/>
+    <pointer-type-def type-id='type-id-465' size-in-bits='64' id='type-id-466'/>
+    <qualified-type-def type-id='type-id-467' const='yes' id='type-id-468'/>
+    <pointer-type-def type-id='type-id-468' size-in-bits='64' id='type-id-469'/>
+    <qualified-type-def type-id='type-id-470' const='yes' id='type-id-471'/>
+    <reference-type-def kind='lvalue' type-id='type-id-471' size-in-bits='64' id='type-id-472'/>
+    <pointer-type-def type-id='type-id-471' size-in-bits='64' id='type-id-473'/>
     <qualified-type-def type-id='type-id-474' const='yes' id='type-id-475'/>
     <reference-type-def kind='lvalue' type-id='type-id-475' size-in-bits='64' id='type-id-476'/>
     <qualified-type-def type-id='type-id-477' const='yes' id='type-id-478'/>
@@ -2306,18 +2303,18 @@ 
     <qualified-type-def type-id='type-id-492' const='yes' id='type-id-493'/>
     <reference-type-def kind='lvalue' type-id='type-id-493' size-in-bits='64' id='type-id-494'/>
     <qualified-type-def type-id='type-id-495' const='yes' id='type-id-496'/>
-    <pointer-type-def type-id='type-id-496' size-in-bits='64' id='type-id-497'/>
+    <reference-type-def kind='lvalue' type-id='type-id-496' size-in-bits='64' id='type-id-497'/>
     <qualified-type-def type-id='type-id-498' const='yes' id='type-id-499'/>
     <reference-type-def kind='lvalue' type-id='type-id-499' size-in-bits='64' id='type-id-500'/>
-    <pointer-type-def type-id='type-id-499' size-in-bits='64' id='type-id-501'/>
-    <qualified-type-def type-id='type-id-502' const='yes' id='type-id-503'/>
-    <reference-type-def kind='lvalue' type-id='type-id-503' size-in-bits='64' id='type-id-504'/>
-    <qualified-type-def type-id='type-id-505' const='yes' id='type-id-506'/>
-    <reference-type-def kind='lvalue' type-id='type-id-506' size-in-bits='64' id='type-id-507'/>
-    <qualified-type-def type-id='type-id-508' const='yes' id='type-id-509'/>
-    <reference-type-def kind='lvalue' type-id='type-id-509' size-in-bits='64' id='type-id-510'/>
-    <qualified-type-def type-id='type-id-511' const='yes' id='type-id-512'/>
-    <reference-type-def kind='lvalue' type-id='type-id-512' size-in-bits='64' id='type-id-513'/>
+    <qualified-type-def type-id='type-id-501' const='yes' id='type-id-502'/>
+    <reference-type-def kind='lvalue' type-id='type-id-502' size-in-bits='64' id='type-id-503'/>
+    <qualified-type-def type-id='type-id-504' const='yes' id='type-id-505'/>
+    <reference-type-def kind='lvalue' type-id='type-id-505' size-in-bits='64' id='type-id-506'/>
+    <qualified-type-def type-id='type-id-507' const='yes' id='type-id-508'/>
+    <pointer-type-def type-id='type-id-508' size-in-bits='64' id='type-id-509'/>
+    <qualified-type-def type-id='type-id-510' const='yes' id='type-id-511'/>
+    <reference-type-def kind='lvalue' type-id='type-id-511' size-in-bits='64' id='type-id-512'/>
+    <pointer-type-def type-id='type-id-511' size-in-bits='64' id='type-id-513'/>
     <qualified-type-def type-id='type-id-514' const='yes' id='type-id-515'/>
     <reference-type-def kind='lvalue' type-id='type-id-515' size-in-bits='64' id='type-id-516'/>
     <qualified-type-def type-id='type-id-517' const='yes' id='type-id-518'/>
@@ -2385,70 +2382,70 @@ 
     <qualified-type-def type-id='type-id-610' const='yes' id='type-id-611'/>
     <reference-type-def kind='lvalue' type-id='type-id-611' size-in-bits='64' id='type-id-612'/>
     <qualified-type-def type-id='type-id-613' const='yes' id='type-id-614'/>
-    <pointer-type-def type-id='type-id-614' size-in-bits='64' id='type-id-615'/>
+    <reference-type-def kind='lvalue' type-id='type-id-614' size-in-bits='64' id='type-id-615'/>
     <qualified-type-def type-id='type-id-616' const='yes' id='type-id-617'/>
     <reference-type-def kind='lvalue' type-id='type-id-617' size-in-bits='64' id='type-id-618'/>
     <qualified-type-def type-id='type-id-619' const='yes' id='type-id-620'/>
-    <pointer-type-def type-id='type-id-620' size-in-bits='64' id='type-id-621'/>
+    <reference-type-def kind='lvalue' type-id='type-id-620' size-in-bits='64' id='type-id-621'/>
     <qualified-type-def type-id='type-id-622' const='yes' id='type-id-623'/>
     <reference-type-def kind='lvalue' type-id='type-id-623' size-in-bits='64' id='type-id-624'/>
     <qualified-type-def type-id='type-id-625' const='yes' id='type-id-626'/>
-    <reference-type-def kind='lvalue' type-id='type-id-626' size-in-bits='64' id='type-id-627'/>
-    <pointer-type-def type-id='type-id-626' size-in-bits='64' id='type-id-628'/>
-    <qualified-type-def type-id='type-id-629' const='yes' id='type-id-630'/>
-    <reference-type-def kind='lvalue' type-id='type-id-630' size-in-bits='64' id='type-id-631'/>
-    <qualified-type-def type-id='type-id-632' const='yes' id='type-id-633'/>
-    <reference-type-def kind='lvalue' type-id='type-id-633' size-in-bits='64' id='type-id-634'/>
-    <qualified-type-def type-id='type-id-635' const='yes' id='type-id-636'/>
-    <reference-type-def kind='lvalue' type-id='type-id-636' size-in-bits='64' id='type-id-637'/>
-    <pointer-type-def type-id='type-id-636' size-in-bits='64' id='type-id-638'/>
-    <qualified-type-def type-id='type-id-639' const='yes' id='type-id-640'/>
-    <reference-type-def kind='lvalue' type-id='type-id-640' size-in-bits='64' id='type-id-641'/>
-    <qualified-type-def type-id='type-id-642' const='yes' id='type-id-643'/>
-    <reference-type-def kind='lvalue' type-id='type-id-643' size-in-bits='64' id='type-id-644'/>
-    <qualified-type-def type-id='type-id-645' const='yes' id='type-id-646'/>
-    <pointer-type-def type-id='type-id-646' size-in-bits='64' id='type-id-647'/>
-    <qualified-type-def type-id='type-id-648' const='yes' id='type-id-649'/>
-    <reference-type-def kind='lvalue' type-id='type-id-649' size-in-bits='64' id='type-id-650'/>
+    <pointer-type-def type-id='type-id-626' size-in-bits='64' id='type-id-627'/>
+    <qualified-type-def type-id='type-id-628' const='yes' id='type-id-629'/>
+    <reference-type-def kind='lvalue' type-id='type-id-629' size-in-bits='64' id='type-id-630'/>
+    <qualified-type-def type-id='type-id-631' const='yes' id='type-id-632'/>
+    <pointer-type-def type-id='type-id-632' size-in-bits='64' id='type-id-633'/>
+    <qualified-type-def type-id='type-id-634' const='yes' id='type-id-635'/>
+    <reference-type-def kind='lvalue' type-id='type-id-635' size-in-bits='64' id='type-id-636'/>
+    <qualified-type-def type-id='type-id-637' const='yes' id='type-id-638'/>
+    <reference-type-def kind='lvalue' type-id='type-id-638' size-in-bits='64' id='type-id-639'/>
+    <pointer-type-def type-id='type-id-638' size-in-bits='64' id='type-id-640'/>
+    <qualified-type-def type-id='type-id-641' const='yes' id='type-id-642'/>
+    <reference-type-def kind='lvalue' type-id='type-id-642' size-in-bits='64' id='type-id-643'/>
+    <qualified-type-def type-id='type-id-644' const='yes' id='type-id-645'/>
+    <reference-type-def kind='lvalue' type-id='type-id-645' size-in-bits='64' id='type-id-646'/>
+    <qualified-type-def type-id='type-id-647' const='yes' id='type-id-648'/>
+    <reference-type-def kind='lvalue' type-id='type-id-648' size-in-bits='64' id='type-id-649'/>
+    <pointer-type-def type-id='type-id-648' size-in-bits='64' id='type-id-650'/>
     <qualified-type-def type-id='type-id-651' const='yes' id='type-id-652'/>
-    <pointer-type-def type-id='type-id-652' size-in-bits='64' id='type-id-653'/>
+    <reference-type-def kind='lvalue' type-id='type-id-652' size-in-bits='64' id='type-id-653'/>
     <qualified-type-def type-id='type-id-654' const='yes' id='type-id-655'/>
     <reference-type-def kind='lvalue' type-id='type-id-655' size-in-bits='64' id='type-id-656'/>
     <qualified-type-def type-id='type-id-657' const='yes' id='type-id-658'/>
-    <reference-type-def kind='lvalue' type-id='type-id-658' size-in-bits='64' id='type-id-659'/>
-    <pointer-type-def type-id='type-id-658' size-in-bits='64' id='type-id-660'/>
-    <qualified-type-def type-id='type-id-661' const='yes' id='type-id-662'/>
-    <reference-type-def kind='lvalue' type-id='type-id-662' size-in-bits='64' id='type-id-663'/>
-    <pointer-type-def type-id='type-id-662' size-in-bits='64' id='type-id-664'/>
-    <qualified-type-def type-id='type-id-665' const='yes' id='type-id-666'/>
-    <pointer-type-def type-id='type-id-666' size-in-bits='64' id='type-id-667'/>
-    <qualified-type-def type-id='type-id-668' const='yes' id='type-id-669'/>
-    <pointer-type-def type-id='type-id-669' size-in-bits='64' id='type-id-670'/>
-    <qualified-type-def type-id='type-id-671' const='yes' id='type-id-672'/>
-    <pointer-type-def type-id='type-id-672' size-in-bits='64' id='type-id-673'/>
-    <qualified-type-def type-id='type-id-674' const='yes' id='type-id-675'/>
-    <reference-type-def kind='lvalue' type-id='type-id-675' size-in-bits='64' id='type-id-676'/>
+    <pointer-type-def type-id='type-id-658' size-in-bits='64' id='type-id-659'/>
+    <qualified-type-def type-id='type-id-660' const='yes' id='type-id-661'/>
+    <reference-type-def kind='lvalue' type-id='type-id-661' size-in-bits='64' id='type-id-662'/>
+    <qualified-type-def type-id='type-id-663' const='yes' id='type-id-664'/>
+    <pointer-type-def type-id='type-id-664' size-in-bits='64' id='type-id-665'/>
+    <qualified-type-def type-id='type-id-666' const='yes' id='type-id-667'/>
+    <reference-type-def kind='lvalue' type-id='type-id-667' size-in-bits='64' id='type-id-668'/>
+    <qualified-type-def type-id='type-id-669' const='yes' id='type-id-670'/>
+    <reference-type-def kind='lvalue' type-id='type-id-670' size-in-bits='64' id='type-id-671'/>
+    <pointer-type-def type-id='type-id-670' size-in-bits='64' id='type-id-672'/>
+    <qualified-type-def type-id='type-id-673' const='yes' id='type-id-674'/>
+    <reference-type-def kind='lvalue' type-id='type-id-674' size-in-bits='64' id='type-id-675'/>
+    <pointer-type-def type-id='type-id-674' size-in-bits='64' id='type-id-676'/>
     <qualified-type-def type-id='type-id-677' const='yes' id='type-id-678'/>
-    <reference-type-def kind='lvalue' type-id='type-id-678' size-in-bits='64' id='type-id-679'/>
+    <pointer-type-def type-id='type-id-678' size-in-bits='64' id='type-id-679'/>
     <qualified-type-def type-id='type-id-680' const='yes' id='type-id-681'/>
-    <reference-type-def kind='lvalue' type-id='type-id-681' size-in-bits='64' id='type-id-682'/>
-    <pointer-type-def type-id='type-id-681' size-in-bits='64' id='type-id-683'/>
-    <qualified-type-def type-id='type-id-684' const='yes' id='type-id-685'/>
-    <reference-type-def kind='lvalue' type-id='type-id-685' size-in-bits='64' id='type-id-686'/>
-    <qualified-type-def type-id='type-id-687' const='yes' id='type-id-688'/>
-    <reference-type-def kind='lvalue' type-id='type-id-688' size-in-bits='64' id='type-id-689'/>
-    <pointer-type-def type-id='type-id-688' size-in-bits='64' id='type-id-690'/>
-    <qualified-type-def type-id='type-id-691' const='yes' id='type-id-692'/>
-    <reference-type-def kind='lvalue' type-id='type-id-692' size-in-bits='64' id='type-id-693'/>
-    <pointer-type-def type-id='type-id-692' size-in-bits='64' id='type-id-694'/>
-    <qualified-type-def type-id='type-id-695' const='yes' id='type-id-696'/>
-    <reference-type-def kind='lvalue' type-id='type-id-696' size-in-bits='64' id='type-id-697'/>
-    <qualified-type-def type-id='type-id-698' const='yes' id='type-id-699'/>
-    <reference-type-def kind='lvalue' type-id='type-id-699' size-in-bits='64' id='type-id-700'/>
-    <qualified-type-def type-id='type-id-701' const='yes' id='type-id-702'/>
-    <reference-type-def kind='lvalue' type-id='type-id-702' size-in-bits='64' id='type-id-703'/>
-    <qualified-type-def type-id='type-id-704' const='yes' id='type-id-705'/>
-    <reference-type-def kind='lvalue' type-id='type-id-705' size-in-bits='64' id='type-id-706'/>
+    <pointer-type-def type-id='type-id-681' size-in-bits='64' id='type-id-682'/>
+    <qualified-type-def type-id='type-id-683' const='yes' id='type-id-684'/>
+    <pointer-type-def type-id='type-id-684' size-in-bits='64' id='type-id-685'/>
+    <qualified-type-def type-id='type-id-686' const='yes' id='type-id-687'/>
+    <reference-type-def kind='lvalue' type-id='type-id-687' size-in-bits='64' id='type-id-688'/>
+    <qualified-type-def type-id='type-id-689' const='yes' id='type-id-690'/>
+    <reference-type-def kind='lvalue' type-id='type-id-690' size-in-bits='64' id='type-id-691'/>
+    <qualified-type-def type-id='type-id-692' const='yes' id='type-id-693'/>
+    <reference-type-def kind='lvalue' type-id='type-id-693' size-in-bits='64' id='type-id-694'/>
+    <pointer-type-def type-id='type-id-693' size-in-bits='64' id='type-id-695'/>
+    <qualified-type-def type-id='type-id-696' const='yes' id='type-id-697'/>
+    <reference-type-def kind='lvalue' type-id='type-id-697' size-in-bits='64' id='type-id-698'/>
+    <qualified-type-def type-id='type-id-699' const='yes' id='type-id-700'/>
+    <reference-type-def kind='lvalue' type-id='type-id-700' size-in-bits='64' id='type-id-701'/>
+    <pointer-type-def type-id='type-id-700' size-in-bits='64' id='type-id-702'/>
+    <qualified-type-def type-id='type-id-703' const='yes' id='type-id-704'/>
+    <reference-type-def kind='lvalue' type-id='type-id-704' size-in-bits='64' id='type-id-705'/>
+    <pointer-type-def type-id='type-id-704' size-in-bits='64' id='type-id-706'/>
     <qualified-type-def type-id='type-id-707' const='yes' id='type-id-708'/>
     <reference-type-def kind='lvalue' type-id='type-id-708' size-in-bits='64' id='type-id-709'/>
     <qualified-type-def type-id='type-id-710' const='yes' id='type-id-711'/>
@@ -2596,73 +2593,72 @@ 
     <qualified-type-def type-id='type-id-923' const='yes' id='type-id-924'/>
     <reference-type-def kind='lvalue' type-id='type-id-924' size-in-bits='64' id='type-id-925'/>
     <qualified-type-def type-id='type-id-926' const='yes' id='type-id-927'/>
-    <pointer-type-def type-id='type-id-927' size-in-bits='64' id='type-id-928'/>
+    <reference-type-def kind='lvalue' type-id='type-id-927' size-in-bits='64' id='type-id-928'/>
     <qualified-type-def type-id='type-id-929' const='yes' id='type-id-930'/>
     <reference-type-def kind='lvalue' type-id='type-id-930' size-in-bits='64' id='type-id-931'/>
     <qualified-type-def type-id='type-id-932' const='yes' id='type-id-933'/>
     <reference-type-def kind='lvalue' type-id='type-id-933' size-in-bits='64' id='type-id-934'/>
     <qualified-type-def type-id='type-id-935' const='yes' id='type-id-936'/>
     <reference-type-def kind='lvalue' type-id='type-id-936' size-in-bits='64' id='type-id-937'/>
-    <pointer-type-def type-id='type-id-936' size-in-bits='64' id='type-id-938'/>
-    <qualified-type-def type-id='type-id-939' const='yes' id='type-id-940'/>
-    <pointer-type-def type-id='type-id-940' size-in-bits='64' id='type-id-941'/>
-    <qualified-type-def type-id='type-id-942' const='yes' id='type-id-943'/>
-    <reference-type-def kind='lvalue' type-id='type-id-943' size-in-bits='64' id='type-id-944'/>
-    <qualified-type-def type-id='type-id-945' const='yes' id='type-id-946'/>
-    <pointer-type-def type-id='type-id-946' size-in-bits='64' id='type-id-947'/>
-    <qualified-type-def type-id='type-id-948' const='yes' id='type-id-949'/>
-    <pointer-type-def type-id='type-id-949' size-in-bits='64' id='type-id-950'/>
+    <qualified-type-def type-id='type-id-938' const='yes' id='type-id-939'/>
+    <pointer-type-def type-id='type-id-939' size-in-bits='64' id='type-id-940'/>
+    <qualified-type-def type-id='type-id-941' const='yes' id='type-id-942'/>
+    <reference-type-def kind='lvalue' type-id='type-id-942' size-in-bits='64' id='type-id-943'/>
+    <qualified-type-def type-id='type-id-944' const='yes' id='type-id-945'/>
+    <reference-type-def kind='lvalue' type-id='type-id-945' size-in-bits='64' id='type-id-946'/>
+    <qualified-type-def type-id='type-id-947' const='yes' id='type-id-948'/>
+    <reference-type-def kind='lvalue' type-id='type-id-948' size-in-bits='64' id='type-id-949'/>
+    <pointer-type-def type-id='type-id-948' size-in-bits='64' id='type-id-950'/>
     <qualified-type-def type-id='type-id-951' const='yes' id='type-id-952'/>
-    <reference-type-def kind='lvalue' type-id='type-id-952' size-in-bits='64' id='type-id-953'/>
-    <pointer-type-def type-id='type-id-952' size-in-bits='64' id='type-id-954'/>
-    <qualified-type-def type-id='type-id-955' const='yes' id='type-id-956'/>
-    <pointer-type-def type-id='type-id-956' size-in-bits='64' id='type-id-957'/>
-    <qualified-type-def type-id='type-id-958' const='yes' id='type-id-959'/>
-    <reference-type-def kind='lvalue' type-id='type-id-959' size-in-bits='64' id='type-id-960'/>
-    <pointer-type-def type-id='type-id-959' size-in-bits='64' id='type-id-961'/>
-    <qualified-type-def type-id='type-id-962' const='yes' id='type-id-963'/>
-    <reference-type-def kind='lvalue' type-id='type-id-963' size-in-bits='64' id='type-id-964'/>
-    <qualified-type-def type-id='type-id-965' const='yes' id='type-id-966'/>
-    <pointer-type-def type-id='type-id-966' size-in-bits='64' id='type-id-967'/>
-    <qualified-type-def type-id='type-id-968' const='yes' id='type-id-969'/>
-    <reference-type-def kind='lvalue' type-id='type-id-969' size-in-bits='64' id='type-id-970'/>
-    <qualified-type-def type-id='type-id-971' const='yes' id='type-id-972'/>
-    <reference-type-def kind='lvalue' type-id='type-id-972' size-in-bits='64' id='type-id-973'/>
+    <pointer-type-def type-id='type-id-952' size-in-bits='64' id='type-id-953'/>
+    <qualified-type-def type-id='type-id-954' const='yes' id='type-id-955'/>
+    <reference-type-def kind='lvalue' type-id='type-id-955' size-in-bits='64' id='type-id-956'/>
+    <qualified-type-def type-id='type-id-957' const='yes' id='type-id-958'/>
+    <pointer-type-def type-id='type-id-958' size-in-bits='64' id='type-id-959'/>
+    <qualified-type-def type-id='type-id-960' const='yes' id='type-id-961'/>
+    <pointer-type-def type-id='type-id-961' size-in-bits='64' id='type-id-962'/>
+    <qualified-type-def type-id='type-id-963' const='yes' id='type-id-964'/>
+    <reference-type-def kind='lvalue' type-id='type-id-964' size-in-bits='64' id='type-id-965'/>
+    <pointer-type-def type-id='type-id-964' size-in-bits='64' id='type-id-966'/>
+    <qualified-type-def type-id='type-id-967' const='yes' id='type-id-968'/>
+    <pointer-type-def type-id='type-id-968' size-in-bits='64' id='type-id-969'/>
+    <qualified-type-def type-id='type-id-970' const='yes' id='type-id-971'/>
+    <reference-type-def kind='lvalue' type-id='type-id-971' size-in-bits='64' id='type-id-972'/>
+    <pointer-type-def type-id='type-id-971' size-in-bits='64' id='type-id-973'/>
     <qualified-type-def type-id='type-id-974' const='yes' id='type-id-975'/>
     <reference-type-def kind='lvalue' type-id='type-id-975' size-in-bits='64' id='type-id-976'/>
     <qualified-type-def type-id='type-id-977' const='yes' id='type-id-978'/>
-    <reference-type-def kind='lvalue' type-id='type-id-978' size-in-bits='64' id='type-id-979'/>
+    <pointer-type-def type-id='type-id-978' size-in-bits='64' id='type-id-979'/>
     <qualified-type-def type-id='type-id-980' const='yes' id='type-id-981'/>
     <reference-type-def kind='lvalue' type-id='type-id-981' size-in-bits='64' id='type-id-982'/>
     <qualified-type-def type-id='type-id-983' const='yes' id='type-id-984'/>
     <reference-type-def kind='lvalue' type-id='type-id-984' size-in-bits='64' id='type-id-985'/>
     <qualified-type-def type-id='type-id-986' const='yes' id='type-id-987'/>
-    <pointer-type-def type-id='type-id-987' size-in-bits='64' id='type-id-988'/>
+    <reference-type-def kind='lvalue' type-id='type-id-987' size-in-bits='64' id='type-id-988'/>
     <qualified-type-def type-id='type-id-989' const='yes' id='type-id-990'/>
-    <pointer-type-def type-id='type-id-990' size-in-bits='64' id='type-id-991'/>
+    <reference-type-def kind='lvalue' type-id='type-id-990' size-in-bits='64' id='type-id-991'/>
     <qualified-type-def type-id='type-id-992' const='yes' id='type-id-993'/>
     <reference-type-def kind='lvalue' type-id='type-id-993' size-in-bits='64' id='type-id-994'/>
     <qualified-type-def type-id='type-id-995' const='yes' id='type-id-996'/>
     <reference-type-def kind='lvalue' type-id='type-id-996' size-in-bits='64' id='type-id-997'/>
-    <pointer-type-def type-id='type-id-996' size-in-bits='64' id='type-id-998'/>
-    <qualified-type-def type-id='type-id-999' const='yes' id='type-id-1000'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1000' size-in-bits='64' id='type-id-1001'/>
-    <pointer-type-def type-id='type-id-1000' size-in-bits='64' id='type-id-1002'/>
-    <qualified-type-def type-id='type-id-1003' const='yes' id='type-id-1004'/>
-    <pointer-type-def type-id='type-id-1004' size-in-bits='64' id='type-id-1005'/>
-    <qualified-type-def type-id='type-id-1006' const='yes' id='type-id-1007'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1007' size-in-bits='64' id='type-id-1008'/>
-    <qualified-type-def type-id='type-id-1009' const='yes' id='type-id-1010'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1010' size-in-bits='64' id='type-id-1011'/>
-    <qualified-type-def type-id='type-id-1012' const='yes' id='type-id-1013'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1013' size-in-bits='64' id='type-id-1014'/>
-    <pointer-type-def type-id='type-id-1013' size-in-bits='64' id='type-id-1015'/>
-    <qualified-type-def type-id='type-id-1016' const='yes' id='type-id-1017'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1017' size-in-bits='64' id='type-id-1018'/>
-    <pointer-type-def type-id='type-id-1017' size-in-bits='64' id='type-id-1019'/>
-    <qualified-type-def type-id='type-id-1020' const='yes' id='type-id-1021'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1021' size-in-bits='64' id='type-id-1022'/>
-    <pointer-type-def type-id='type-id-1021' size-in-bits='64' id='type-id-1023'/>
+    <qualified-type-def type-id='type-id-998' const='yes' id='type-id-999'/>
+    <pointer-type-def type-id='type-id-999' size-in-bits='64' id='type-id-1000'/>
+    <qualified-type-def type-id='type-id-1001' const='yes' id='type-id-1002'/>
+    <pointer-type-def type-id='type-id-1002' size-in-bits='64' id='type-id-1003'/>
+    <qualified-type-def type-id='type-id-1004' const='yes' id='type-id-1005'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1005' size-in-bits='64' id='type-id-1006'/>
+    <qualified-type-def type-id='type-id-1007' const='yes' id='type-id-1008'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1008' size-in-bits='64' id='type-id-1009'/>
+    <pointer-type-def type-id='type-id-1008' size-in-bits='64' id='type-id-1010'/>
+    <qualified-type-def type-id='type-id-1011' const='yes' id='type-id-1012'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1012' size-in-bits='64' id='type-id-1013'/>
+    <pointer-type-def type-id='type-id-1012' size-in-bits='64' id='type-id-1014'/>
+    <qualified-type-def type-id='type-id-1015' const='yes' id='type-id-1016'/>
+    <pointer-type-def type-id='type-id-1016' size-in-bits='64' id='type-id-1017'/>
+    <qualified-type-def type-id='type-id-1018' const='yes' id='type-id-1019'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1019' size-in-bits='64' id='type-id-1020'/>
+    <qualified-type-def type-id='type-id-1021' const='yes' id='type-id-1022'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1022' size-in-bits='64' id='type-id-1023'/>
     <qualified-type-def type-id='type-id-1024' const='yes' id='type-id-1025'/>
     <reference-type-def kind='lvalue' type-id='type-id-1025' size-in-bits='64' id='type-id-1026'/>
     <pointer-type-def type-id='type-id-1025' size-in-bits='64' id='type-id-1027'/>
@@ -2677,19 +2673,20 @@ 
     <pointer-type-def type-id='type-id-1037' size-in-bits='64' id='type-id-1039'/>
     <qualified-type-def type-id='type-id-1040' const='yes' id='type-id-1041'/>
     <reference-type-def kind='lvalue' type-id='type-id-1041' size-in-bits='64' id='type-id-1042'/>
-    <qualified-type-def type-id='type-id-1043' const='yes' id='type-id-1044'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1044' size-in-bits='64' id='type-id-1045'/>
-    <qualified-type-def type-id='type-id-1046' const='yes' id='type-id-1047'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1047' size-in-bits='64' id='type-id-1048'/>
-    <reference-type-def kind='rvalue' type-id='type-id-1047' size-in-bits='64' id='type-id-1049'/>
-    <qualified-type-def type-id='type-id-1050' const='yes' id='type-id-1051'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1051' size-in-bits='64' id='type-id-1052'/>
-    <qualified-type-def type-id='type-id-1053' const='yes' id='type-id-1054'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1054' size-in-bits='64' id='type-id-1055'/>
-    <qualified-type-def type-id='type-id-1056' const='yes' id='type-id-1057'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1057' size-in-bits='64' id='type-id-1058'/>
-    <qualified-type-def type-id='type-id-1059' const='yes' id='type-id-1060'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1060' size-in-bits='64' id='type-id-1061'/>
+    <pointer-type-def type-id='type-id-1041' size-in-bits='64' id='type-id-1043'/>
+    <qualified-type-def type-id='type-id-1044' const='yes' id='type-id-1045'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1045' size-in-bits='64' id='type-id-1046'/>
+    <pointer-type-def type-id='type-id-1045' size-in-bits='64' id='type-id-1047'/>
+    <qualified-type-def type-id='type-id-1048' const='yes' id='type-id-1049'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1049' size-in-bits='64' id='type-id-1050'/>
+    <pointer-type-def type-id='type-id-1049' size-in-bits='64' id='type-id-1051'/>
+    <qualified-type-def type-id='type-id-1052' const='yes' id='type-id-1053'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1053' size-in-bits='64' id='type-id-1054'/>
+    <qualified-type-def type-id='type-id-1055' const='yes' id='type-id-1056'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1056' size-in-bits='64' id='type-id-1057'/>
+    <qualified-type-def type-id='type-id-1058' const='yes' id='type-id-1059'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1059' size-in-bits='64' id='type-id-1060'/>
+    <reference-type-def kind='rvalue' type-id='type-id-1059' size-in-bits='64' id='type-id-1061'/>
     <qualified-type-def type-id='type-id-1062' const='yes' id='type-id-1063'/>
     <reference-type-def kind='lvalue' type-id='type-id-1063' size-in-bits='64' id='type-id-1064'/>
     <qualified-type-def type-id='type-id-1065' const='yes' id='type-id-1066'/>
@@ -2698,37 +2695,36 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1069' size-in-bits='64' id='type-id-1070'/>
     <qualified-type-def type-id='type-id-1071' const='yes' id='type-id-1072'/>
     <reference-type-def kind='lvalue' type-id='type-id-1072' size-in-bits='64' id='type-id-1073'/>
-    <reference-type-def kind='rvalue' type-id='type-id-1072' size-in-bits='64' id='type-id-1074'/>
-    <qualified-type-def type-id='type-id-1075' const='yes' id='type-id-1076'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1076' size-in-bits='64' id='type-id-1077'/>
-    <qualified-type-def type-id='type-id-1078' const='yes' id='type-id-1079'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1079' size-in-bits='64' id='type-id-1080'/>
-    <qualified-type-def type-id='type-id-1081' const='yes' id='type-id-1082'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1082' size-in-bits='64' id='type-id-1083'/>
-    <pointer-type-def type-id='type-id-1082' size-in-bits='64' id='type-id-1084'/>
-    <qualified-type-def type-id='type-id-1085' const='yes' id='type-id-1086'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1086' size-in-bits='64' id='type-id-1087'/>
-    <pointer-type-def type-id='type-id-1086' size-in-bits='64' id='type-id-1088'/>
-    <qualified-type-def type-id='type-id-1089' const='yes' id='type-id-1090'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1090' size-in-bits='64' id='type-id-1091'/>
-    <qualified-type-def type-id='type-id-1092' const='yes' id='type-id-1093'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1093' size-in-bits='64' id='type-id-1094'/>
-    <pointer-type-def type-id='type-id-1093' size-in-bits='64' id='type-id-1095'/>
-    <qualified-type-def type-id='type-id-1096' const='yes' id='type-id-1097'/>
-    <pointer-type-def type-id='type-id-1097' size-in-bits='64' id='type-id-1098'/>
-    <qualified-type-def type-id='type-id-1099' const='yes' id='type-id-1100'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1100' size-in-bits='64' id='type-id-1101'/>
-    <qualified-type-def type-id='type-id-1102' const='yes' id='type-id-1103'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1103' size-in-bits='64' id='type-id-1104'/>
-    <qualified-type-def type-id='type-id-1105' const='yes' id='type-id-1106'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1106' size-in-bits='64' id='type-id-1107'/>
-    <pointer-type-def type-id='type-id-1106' size-in-bits='64' id='type-id-1108'/>
-    <qualified-type-def type-id='type-id-1109' const='yes' id='type-id-1110'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1110' size-in-bits='64' id='type-id-1111'/>
-    <pointer-type-def type-id='type-id-1110' size-in-bits='64' id='type-id-1112'/>
-    <qualified-type-def type-id='type-id-1113' const='yes' id='type-id-1114'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1114' size-in-bits='64' id='type-id-1115'/>
-    <pointer-type-def type-id='type-id-1114' size-in-bits='64' id='type-id-1116'/>
+    <qualified-type-def type-id='type-id-1074' const='yes' id='type-id-1075'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1075' size-in-bits='64' id='type-id-1076'/>
+    <qualified-type-def type-id='type-id-1077' const='yes' id='type-id-1078'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1078' size-in-bits='64' id='type-id-1079'/>
+    <qualified-type-def type-id='type-id-1080' const='yes' id='type-id-1081'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1081' size-in-bits='64' id='type-id-1082'/>
+    <qualified-type-def type-id='type-id-1083' const='yes' id='type-id-1084'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1084' size-in-bits='64' id='type-id-1085'/>
+    <reference-type-def kind='rvalue' type-id='type-id-1084' size-in-bits='64' id='type-id-1086'/>
+    <qualified-type-def type-id='type-id-1087' const='yes' id='type-id-1088'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1088' size-in-bits='64' id='type-id-1089'/>
+    <qualified-type-def type-id='type-id-1090' const='yes' id='type-id-1091'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1091' size-in-bits='64' id='type-id-1092'/>
+    <qualified-type-def type-id='type-id-1093' const='yes' id='type-id-1094'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1094' size-in-bits='64' id='type-id-1095'/>
+    <pointer-type-def type-id='type-id-1094' size-in-bits='64' id='type-id-1096'/>
+    <qualified-type-def type-id='type-id-1097' const='yes' id='type-id-1098'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1098' size-in-bits='64' id='type-id-1099'/>
+    <pointer-type-def type-id='type-id-1098' size-in-bits='64' id='type-id-1100'/>
+    <qualified-type-def type-id='type-id-1101' const='yes' id='type-id-1102'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1102' size-in-bits='64' id='type-id-1103'/>
+    <qualified-type-def type-id='type-id-1104' const='yes' id='type-id-1105'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1105' size-in-bits='64' id='type-id-1106'/>
+    <pointer-type-def type-id='type-id-1105' size-in-bits='64' id='type-id-1107'/>
+    <qualified-type-def type-id='type-id-1108' const='yes' id='type-id-1109'/>
+    <pointer-type-def type-id='type-id-1109' size-in-bits='64' id='type-id-1110'/>
+    <qualified-type-def type-id='type-id-1111' const='yes' id='type-id-1112'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1112' size-in-bits='64' id='type-id-1113'/>
+    <qualified-type-def type-id='type-id-1114' const='yes' id='type-id-1115'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1115' size-in-bits='64' id='type-id-1116'/>
     <qualified-type-def type-id='type-id-1117' const='yes' id='type-id-1118'/>
     <reference-type-def kind='lvalue' type-id='type-id-1118' size-in-bits='64' id='type-id-1119'/>
     <pointer-type-def type-id='type-id-1118' size-in-bits='64' id='type-id-1120'/>
@@ -2757,59 +2753,60 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1150' size-in-bits='64' id='type-id-1151'/>
     <pointer-type-def type-id='type-id-1150' size-in-bits='64' id='type-id-1152'/>
     <qualified-type-def type-id='type-id-1153' const='yes' id='type-id-1154'/>
-    <pointer-type-def type-id='type-id-1154' size-in-bits='64' id='type-id-1155'/>
-    <qualified-type-def type-id='type-id-1156' const='yes' id='type-id-1157'/>
-    <pointer-type-def type-id='type-id-1157' size-in-bits='64' id='type-id-1158'/>
-    <qualified-type-def type-id='type-id-1159' const='yes' id='type-id-1160'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1160' size-in-bits='64' id='type-id-1161'/>
-    <pointer-type-def type-id='type-id-1160' size-in-bits='64' id='type-id-1162'/>
-    <qualified-type-def type-id='type-id-1163' const='yes' id='type-id-1164'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1164' size-in-bits='64' id='type-id-1165'/>
-    <qualified-type-def type-id='type-id-1166' const='yes' id='type-id-1167'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1167' size-in-bits='64' id='type-id-1168'/>
-    <qualified-type-def type-id='type-id-1169' const='yes' id='type-id-1170'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1170' size-in-bits='64' id='type-id-1171'/>
-    <pointer-type-def type-id='type-id-1170' size-in-bits='64' id='type-id-1172'/>
-    <qualified-type-def type-id='type-id-1173' const='yes' id='type-id-1174'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1174' size-in-bits='64' id='type-id-1175'/>
-    <qualified-type-def type-id='type-id-1176' const='yes' id='type-id-1177'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1177' size-in-bits='64' id='type-id-1178'/>
-    <qualified-type-def type-id='type-id-1179' const='yes' id='type-id-1180'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1180' size-in-bits='64' id='type-id-1181'/>
-    <qualified-type-def type-id='type-id-1182' const='yes' id='type-id-1183'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1183' size-in-bits='64' id='type-id-1184'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1154' size-in-bits='64' id='type-id-1155'/>
+    <pointer-type-def type-id='type-id-1154' size-in-bits='64' id='type-id-1156'/>
+    <qualified-type-def type-id='type-id-1157' const='yes' id='type-id-1158'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1158' size-in-bits='64' id='type-id-1159'/>
+    <pointer-type-def type-id='type-id-1158' size-in-bits='64' id='type-id-1160'/>
+    <qualified-type-def type-id='type-id-1161' const='yes' id='type-id-1162'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1162' size-in-bits='64' id='type-id-1163'/>
+    <pointer-type-def type-id='type-id-1162' size-in-bits='64' id='type-id-1164'/>
+    <qualified-type-def type-id='type-id-1165' const='yes' id='type-id-1166'/>
+    <pointer-type-def type-id='type-id-1166' size-in-bits='64' id='type-id-1167'/>
+    <qualified-type-def type-id='type-id-1168' const='yes' id='type-id-1169'/>
+    <pointer-type-def type-id='type-id-1169' size-in-bits='64' id='type-id-1170'/>
+    <qualified-type-def type-id='type-id-1171' const='yes' id='type-id-1172'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1172' size-in-bits='64' id='type-id-1173'/>
+    <pointer-type-def type-id='type-id-1172' size-in-bits='64' id='type-id-1174'/>
+    <qualified-type-def type-id='type-id-1175' const='yes' id='type-id-1176'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1176' size-in-bits='64' id='type-id-1177'/>
+    <qualified-type-def type-id='type-id-1178' const='yes' id='type-id-1179'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1179' size-in-bits='64' id='type-id-1180'/>
+    <qualified-type-def type-id='type-id-1181' const='yes' id='type-id-1182'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1182' size-in-bits='64' id='type-id-1183'/>
+    <pointer-type-def type-id='type-id-1182' size-in-bits='64' id='type-id-1184'/>
     <qualified-type-def type-id='type-id-1185' const='yes' id='type-id-1186'/>
     <reference-type-def kind='lvalue' type-id='type-id-1186' size-in-bits='64' id='type-id-1187'/>
     <qualified-type-def type-id='type-id-1188' const='yes' id='type-id-1189'/>
     <reference-type-def kind='lvalue' type-id='type-id-1189' size-in-bits='64' id='type-id-1190'/>
-    <pointer-type-def type-id='type-id-1189' size-in-bits='64' id='type-id-1191'/>
-    <qualified-type-def type-id='type-id-1192' const='yes' id='type-id-1193'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1193' size-in-bits='64' id='type-id-1194'/>
-    <qualified-type-def type-id='type-id-1195' const='yes' id='type-id-1196'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1196' size-in-bits='64' id='type-id-1197'/>
-    <qualified-type-def type-id='type-id-1198' const='yes' id='type-id-1199'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1199' size-in-bits='64' id='type-id-1200'/>
-    <qualified-type-def type-id='type-id-1201' const='yes' id='type-id-1202'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1202' size-in-bits='64' id='type-id-1203'/>
+    <qualified-type-def type-id='type-id-1191' const='yes' id='type-id-1192'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1192' size-in-bits='64' id='type-id-1193'/>
+    <qualified-type-def type-id='type-id-1194' const='yes' id='type-id-1195'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1195' size-in-bits='64' id='type-id-1196'/>
+    <qualified-type-def type-id='type-id-1197' const='yes' id='type-id-1198'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1198' size-in-bits='64' id='type-id-1199'/>
+    <qualified-type-def type-id='type-id-1200' const='yes' id='type-id-1201'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1201' size-in-bits='64' id='type-id-1202'/>
+    <pointer-type-def type-id='type-id-1201' size-in-bits='64' id='type-id-1203'/>
     <qualified-type-def type-id='type-id-1204' const='yes' id='type-id-1205'/>
     <reference-type-def kind='lvalue' type-id='type-id-1205' size-in-bits='64' id='type-id-1206'/>
     <qualified-type-def type-id='type-id-1207' const='yes' id='type-id-1208'/>
     <reference-type-def kind='lvalue' type-id='type-id-1208' size-in-bits='64' id='type-id-1209'/>
-    <qualified-type-def type-id='type-id-92' const='yes' id='type-id-1210'/>
-    <qualified-type-def type-id='type-id-1211' const='yes' id='type-id-1212'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1212' size-in-bits='64' id='type-id-1213'/>
-    <pointer-type-def type-id='type-id-1212' size-in-bits='64' id='type-id-1214'/>
-    <qualified-type-def type-id='type-id-1215' const='yes' id='type-id-1216'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1216' size-in-bits='64' id='type-id-1217'/>
-    <pointer-type-def type-id='type-id-1216' size-in-bits='64' id='type-id-1218'/>
+    <qualified-type-def type-id='type-id-1210' const='yes' id='type-id-1211'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1211' size-in-bits='64' id='type-id-1212'/>
+    <qualified-type-def type-id='type-id-1213' const='yes' id='type-id-1214'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1214' size-in-bits='64' id='type-id-1215'/>
+    <qualified-type-def type-id='type-id-1216' const='yes' id='type-id-1217'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1217' size-in-bits='64' id='type-id-1218'/>
     <qualified-type-def type-id='type-id-1219' const='yes' id='type-id-1220'/>
     <reference-type-def kind='lvalue' type-id='type-id-1220' size-in-bits='64' id='type-id-1221'/>
-    <qualified-type-def type-id='type-id-1222' const='yes' id='type-id-1223'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1223' size-in-bits='64' id='type-id-1224'/>
-    <qualified-type-def type-id='type-id-1225' const='yes' id='type-id-1226'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1226' size-in-bits='64' id='type-id-1227'/>
-    <qualified-type-def type-id='type-id-1228' const='yes' id='type-id-1229'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1229' size-in-bits='64' id='type-id-1230'/>
+    <qualified-type-def type-id='type-id-97' const='yes' id='type-id-1222'/>
+    <qualified-type-def type-id='type-id-1223' const='yes' id='type-id-1224'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1224' size-in-bits='64' id='type-id-1225'/>
+    <pointer-type-def type-id='type-id-1224' size-in-bits='64' id='type-id-1226'/>
+    <qualified-type-def type-id='type-id-1227' const='yes' id='type-id-1228'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1228' size-in-bits='64' id='type-id-1229'/>
+    <pointer-type-def type-id='type-id-1228' size-in-bits='64' id='type-id-1230'/>
     <qualified-type-def type-id='type-id-1231' const='yes' id='type-id-1232'/>
     <reference-type-def kind='lvalue' type-id='type-id-1232' size-in-bits='64' id='type-id-1233'/>
     <qualified-type-def type-id='type-id-1234' const='yes' id='type-id-1235'/>
@@ -2840,61 +2837,61 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1271' size-in-bits='64' id='type-id-1272'/>
     <qualified-type-def type-id='type-id-1273' const='yes' id='type-id-1274'/>
     <reference-type-def kind='lvalue' type-id='type-id-1274' size-in-bits='64' id='type-id-1275'/>
-    <pointer-type-def type-id='type-id-1274' size-in-bits='64' id='type-id-1276'/>
-    <qualified-type-def type-id='type-id-1277' const='yes' id='type-id-1278'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1278' size-in-bits='64' id='type-id-1279'/>
-    <pointer-type-def type-id='type-id-1278' size-in-bits='64' id='type-id-1280'/>
-    <qualified-type-def type-id='type-id-1281' const='yes' id='type-id-1282'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1282' size-in-bits='64' id='type-id-1283'/>
-    <qualified-type-def type-id='type-id-1284' const='yes' id='type-id-1285'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1285' size-in-bits='64' id='type-id-1286'/>
-    <pointer-type-def type-id='type-id-1285' size-in-bits='64' id='type-id-1287'/>
-    <qualified-type-def type-id='type-id-1288' const='yes' id='type-id-1289'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1289' size-in-bits='64' id='type-id-1290'/>
-    <qualified-type-def type-id='type-id-1291' const='yes' id='type-id-1292'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1292' size-in-bits='64' id='type-id-1293'/>
-    <pointer-type-def type-id='type-id-1292' size-in-bits='64' id='type-id-1294'/>
-    <qualified-type-def type-id='type-id-1295' const='yes' id='type-id-1296'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1296' size-in-bits='64' id='type-id-1297'/>
-    <qualified-type-def type-id='type-id-1298' const='yes' id='type-id-1299'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1299' size-in-bits='64' id='type-id-1300'/>
-    <pointer-type-def type-id='type-id-1299' size-in-bits='64' id='type-id-1301'/>
-    <qualified-type-def type-id='type-id-1302' const='yes' id='type-id-1303'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1303' size-in-bits='64' id='type-id-1304'/>
-    <qualified-type-def type-id='type-id-1305' const='yes' id='type-id-1306'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1306' size-in-bits='64' id='type-id-1307'/>
-    <pointer-type-def type-id='type-id-1306' size-in-bits='64' id='type-id-1308'/>
-    <qualified-type-def type-id='type-id-1309' const='yes' id='type-id-1310'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1310' size-in-bits='64' id='type-id-1311'/>
-    <qualified-type-def type-id='type-id-1312' const='yes' id='type-id-1313'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1313' size-in-bits='64' id='type-id-1314'/>
-    <qualified-type-def type-id='type-id-1315' const='yes' id='type-id-1316'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1316' size-in-bits='64' id='type-id-1317'/>
-    <qualified-type-def type-id='type-id-1318' const='yes' id='type-id-1319'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1319' size-in-bits='64' id='type-id-1320'/>
+    <qualified-type-def type-id='type-id-1276' const='yes' id='type-id-1277'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1277' size-in-bits='64' id='type-id-1278'/>
+    <qualified-type-def type-id='type-id-1279' const='yes' id='type-id-1280'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1280' size-in-bits='64' id='type-id-1281'/>
+    <qualified-type-def type-id='type-id-1282' const='yes' id='type-id-1283'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1283' size-in-bits='64' id='type-id-1284'/>
+    <qualified-type-def type-id='type-id-1285' const='yes' id='type-id-1286'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1286' size-in-bits='64' id='type-id-1287'/>
+    <pointer-type-def type-id='type-id-1286' size-in-bits='64' id='type-id-1288'/>
+    <qualified-type-def type-id='type-id-1289' const='yes' id='type-id-1290'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1290' size-in-bits='64' id='type-id-1291'/>
+    <pointer-type-def type-id='type-id-1290' size-in-bits='64' id='type-id-1292'/>
+    <qualified-type-def type-id='type-id-1293' const='yes' id='type-id-1294'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1294' size-in-bits='64' id='type-id-1295'/>
+    <qualified-type-def type-id='type-id-1296' const='yes' id='type-id-1297'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1297' size-in-bits='64' id='type-id-1298'/>
+    <pointer-type-def type-id='type-id-1297' size-in-bits='64' id='type-id-1299'/>
+    <qualified-type-def type-id='type-id-1300' const='yes' id='type-id-1301'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1301' size-in-bits='64' id='type-id-1302'/>
+    <qualified-type-def type-id='type-id-1303' const='yes' id='type-id-1304'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1304' size-in-bits='64' id='type-id-1305'/>
+    <pointer-type-def type-id='type-id-1304' size-in-bits='64' id='type-id-1306'/>
+    <qualified-type-def type-id='type-id-1307' const='yes' id='type-id-1308'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1308' size-in-bits='64' id='type-id-1309'/>
+    <qualified-type-def type-id='type-id-1310' const='yes' id='type-id-1311'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1311' size-in-bits='64' id='type-id-1312'/>
+    <pointer-type-def type-id='type-id-1311' size-in-bits='64' id='type-id-1313'/>
+    <qualified-type-def type-id='type-id-1314' const='yes' id='type-id-1315'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1315' size-in-bits='64' id='type-id-1316'/>
+    <qualified-type-def type-id='type-id-1317' const='yes' id='type-id-1318'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1318' size-in-bits='64' id='type-id-1319'/>
+    <pointer-type-def type-id='type-id-1318' size-in-bits='64' id='type-id-1320'/>
     <qualified-type-def type-id='type-id-1321' const='yes' id='type-id-1322'/>
     <reference-type-def kind='lvalue' type-id='type-id-1322' size-in-bits='64' id='type-id-1323'/>
-    <pointer-type-def type-id='type-id-1322' size-in-bits='64' id='type-id-1324'/>
-    <qualified-type-def type-id='type-id-94' const='yes' id='type-id-1325'/>
-    <pointer-type-def type-id='type-id-1325' size-in-bits='64' id='type-id-1326'/>
-    <qualified-type-def type-id='type-id-57' const='yes' id='type-id-1327'/>
-    <pointer-type-def type-id='type-id-1327' size-in-bits='64' id='type-id-1328'/>
-    <qualified-type-def type-id='type-id-1328' restrict='yes' id='type-id-1329'/>
-    <qualified-type-def type-id='type-id-96' const='yes' id='type-id-1330'/>
-    <qualified-type-def type-id='type-id-105' const='yes' id='type-id-36'/>
-    <reference-type-def kind='lvalue' type-id='type-id-37' size-in-bits='64' id='type-id-1331'/>
-    <qualified-type-def type-id='type-id-48' const='yes' id='type-id-1332'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1332' size-in-bits='64' id='type-id-1333'/>
-    <qualified-type-def type-id='type-id-91' const='yes' id='type-id-1334'/>
+    <qualified-type-def type-id='type-id-1324' const='yes' id='type-id-1325'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1325' size-in-bits='64' id='type-id-1326'/>
+    <qualified-type-def type-id='type-id-1327' const='yes' id='type-id-1328'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1328' size-in-bits='64' id='type-id-1329'/>
+    <qualified-type-def type-id='type-id-1330' const='yes' id='type-id-1331'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1331' size-in-bits='64' id='type-id-1332'/>
+    <qualified-type-def type-id='type-id-1333' const='yes' id='type-id-1334'/>
     <reference-type-def kind='lvalue' type-id='type-id-1334' size-in-bits='64' id='type-id-1335'/>
-    <qualified-type-def type-id='type-id-1336' const='yes' id='type-id-1337'/>
+    <pointer-type-def type-id='type-id-1334' size-in-bits='64' id='type-id-1336'/>
+    <qualified-type-def type-id='type-id-99' const='yes' id='type-id-1337'/>
     <pointer-type-def type-id='type-id-1337' size-in-bits='64' id='type-id-1338'/>
-    <qualified-type-def type-id='type-id-1339' const='yes' id='type-id-1340'/>
-    <pointer-type-def type-id='type-id-1340' size-in-bits='64' id='type-id-1341'/>
-    <qualified-type-def type-id='type-id-1342' const='yes' id='type-id-1343'/>
-    <pointer-type-def type-id='type-id-1343' size-in-bits='64' id='type-id-1344'/>
-    <qualified-type-def type-id='type-id-1345' const='yes' id='type-id-1346'/>
-    <pointer-type-def type-id='type-id-1346' size-in-bits='64' id='type-id-1347'/>
+    <qualified-type-def type-id='type-id-62' const='yes' id='type-id-1339'/>
+    <pointer-type-def type-id='type-id-1339' size-in-bits='64' id='type-id-1340'/>
+    <qualified-type-def type-id='type-id-1340' restrict='yes' id='type-id-1341'/>
+    <qualified-type-def type-id='type-id-101' const='yes' id='type-id-1342'/>
+    <qualified-type-def type-id='type-id-110' const='yes' id='type-id-36'/>
+    <reference-type-def kind='lvalue' type-id='type-id-37' size-in-bits='64' id='type-id-1343'/>
+    <qualified-type-def type-id='type-id-53' const='yes' id='type-id-1344'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1344' size-in-bits='64' id='type-id-1345'/>
+    <qualified-type-def type-id='type-id-96' const='yes' id='type-id-1346'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1346' size-in-bits='64' id='type-id-1347'/>
     <qualified-type-def type-id='type-id-1348' const='yes' id='type-id-1349'/>
     <pointer-type-def type-id='type-id-1349' size-in-bits='64' id='type-id-1350'/>
     <qualified-type-def type-id='type-id-1351' const='yes' id='type-id-1352'/>
@@ -2920,989 +2917,989 @@ 
     <qualified-type-def type-id='type-id-1381' const='yes' id='type-id-1382'/>
     <pointer-type-def type-id='type-id-1382' size-in-bits='64' id='type-id-1383'/>
     <qualified-type-def type-id='type-id-1384' const='yes' id='type-id-1385'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1385' size-in-bits='64' id='type-id-1386'/>
+    <pointer-type-def type-id='type-id-1385' size-in-bits='64' id='type-id-1386'/>
     <qualified-type-def type-id='type-id-1387' const='yes' id='type-id-1388'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1388' size-in-bits='64' id='type-id-1389'/>
+    <pointer-type-def type-id='type-id-1388' size-in-bits='64' id='type-id-1389'/>
     <qualified-type-def type-id='type-id-1390' const='yes' id='type-id-1391'/>
     <pointer-type-def type-id='type-id-1391' size-in-bits='64' id='type-id-1392'/>
-    <qualified-type-def type-id='type-id-112' const='yes' id='type-id-1393'/>
-    <pointer-type-def type-id='type-id-1393' size-in-bits='64' id='type-id-1394'/>
-    <qualified-type-def type-id='type-id-1394' restrict='yes' id='type-id-1395'/>
-    <pointer-type-def type-id='type-id-1394' size-in-bits='64' id='type-id-1396'/>
-    <qualified-type-def type-id='type-id-1396' restrict='yes' id='type-id-1397'/>
-    <reference-type-def kind='lvalue' type-id='type-id-38' size-in-bits='64' id='type-id-1398'/>
-    <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-1399'/>
-    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-1400'/>
-    <qualified-type-def type-id='type-id-1400' restrict='yes' id='type-id-1401'/>
-    <pointer-type-def type-id='type-id-1402' size-in-bits='64' id='type-id-64'/>
-    <reference-type-def kind='lvalue' type-id='type-id-40' size-in-bits='64' id='type-id-1403'/>
-    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-1404'/>
-    <reference-type-def kind='lvalue' type-id='type-id-43' size-in-bits='64' id='type-id-1405'/>
-    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-1406'/>
+    <qualified-type-def type-id='type-id-1393' const='yes' id='type-id-1394'/>
+    <pointer-type-def type-id='type-id-1394' size-in-bits='64' id='type-id-1395'/>
+    <qualified-type-def type-id='type-id-1396' const='yes' id='type-id-1397'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1397' size-in-bits='64' id='type-id-1398'/>
+    <qualified-type-def type-id='type-id-1399' const='yes' id='type-id-1400'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1400' size-in-bits='64' id='type-id-1401'/>
+    <qualified-type-def type-id='type-id-1402' const='yes' id='type-id-1403'/>
+    <pointer-type-def type-id='type-id-1403' size-in-bits='64' id='type-id-1404'/>
+    <qualified-type-def type-id='type-id-125' const='yes' id='type-id-1405'/>
+    <pointer-type-def type-id='type-id-1405' size-in-bits='64' id='type-id-1406'/>
     <qualified-type-def type-id='type-id-1406' restrict='yes' id='type-id-1407'/>
-    <pointer-type-def type-id='type-id-290' size-in-bits='64' id='type-id-1408'/>
-    <reference-type-def kind='lvalue' type-id='type-id-293' size-in-bits='64' id='type-id-1409'/>
-    <pointer-type-def type-id='type-id-293' size-in-bits='64' id='type-id-1410'/>
-    <reference-type-def kind='lvalue' type-id='type-id-297' size-in-bits='64' id='type-id-1411'/>
-    <reference-type-def kind='rvalue' type-id='type-id-297' size-in-bits='64' id='type-id-1412'/>
-    <pointer-type-def type-id='type-id-297' size-in-bits='64' id='type-id-1413'/>
-    <reference-type-def kind='lvalue' type-id='type-id-301' size-in-bits='64' id='type-id-1414'/>
-    <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-1415'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1416' size-in-bits='64' id='type-id-1417'/>
-    <reference-type-def kind='lvalue' type-id='type-id-304' size-in-bits='64' id='type-id-1418'/>
-    <pointer-type-def type-id='type-id-304' size-in-bits='64' id='type-id-1419'/>
-    <pointer-type-def type-id='type-id-308' size-in-bits='64' id='type-id-1420'/>
-    <pointer-type-def type-id='type-id-311' size-in-bits='64' id='type-id-1421'/>
-    <reference-type-def kind='lvalue' type-id='type-id-314' size-in-bits='64' id='type-id-1422'/>
-    <pointer-type-def type-id='type-id-314' size-in-bits='64' id='type-id-1423'/>
-    <reference-type-def kind='lvalue' type-id='type-id-317' size-in-bits='64' id='type-id-1424'/>
-    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-1425'/>
-    <pointer-type-def type-id='type-id-323' size-in-bits='64' id='type-id-1426'/>
-    <pointer-type-def type-id='type-id-329' size-in-bits='64' id='type-id-1427'/>
-    <reference-type-def kind='lvalue' type-id='type-id-333' size-in-bits='64' id='type-id-1428'/>
-    <pointer-type-def type-id='type-id-333' size-in-bits='64' id='type-id-1429'/>
-    <reference-type-def kind='lvalue' type-id='type-id-337' size-in-bits='64' id='type-id-1430'/>
-    <pointer-type-def type-id='type-id-337' size-in-bits='64' id='type-id-1431'/>
-    <pointer-type-def type-id='type-id-1432' size-in-bits='64' id='type-id-1433'/>
-    <pointer-type-def type-id='type-id-343' size-in-bits='64' id='type-id-1434'/>
-    <pointer-type-def type-id='type-id-1435' size-in-bits='64' id='type-id-1436'/>
-    <reference-type-def kind='lvalue' type-id='type-id-347' size-in-bits='64' id='type-id-1437'/>
-    <reference-type-def kind='rvalue' type-id='type-id-347' size-in-bits='64' id='type-id-1438'/>
-    <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-1439'/>
-    <reference-type-def kind='lvalue' type-id='type-id-351' size-in-bits='64' id='type-id-1440'/>
-    <pointer-type-def type-id='type-id-351' size-in-bits='64' id='type-id-1441'/>
-    <reference-type-def kind='lvalue' type-id='type-id-354' size-in-bits='64' id='type-id-1442'/>
-    <reference-type-def kind='rvalue' type-id='type-id-354' size-in-bits='64' id='type-id-1443'/>
-    <pointer-type-def type-id='type-id-354' size-in-bits='64' id='type-id-1444'/>
-    <pointer-type-def type-id='type-id-1445' size-in-bits='64' id='type-id-1446'/>
-    <reference-type-def kind='lvalue' type-id='type-id-358' size-in-bits='64' id='type-id-1447'/>
-    <reference-type-def kind='rvalue' type-id='type-id-358' size-in-bits='64' id='type-id-1448'/>
-    <pointer-type-def type-id='type-id-358' size-in-bits='64' id='type-id-1449'/>
-    <pointer-type-def type-id='type-id-362' size-in-bits='64' id='type-id-1450'/>
-    <pointer-type-def type-id='type-id-365' size-in-bits='64' id='type-id-1451'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1452' size-in-bits='64' id='type-id-1453'/>
-    <reference-type-def kind='lvalue' type-id='type-id-368' size-in-bits='64' id='type-id-1454'/>
-    <pointer-type-def type-id='type-id-368' size-in-bits='64' id='type-id-1455'/>
-    <pointer-type-def type-id='type-id-372' size-in-bits='64' id='type-id-1456'/>
-    <pointer-type-def type-id='type-id-376' size-in-bits='64' id='type-id-1457'/>
+    <pointer-type-def type-id='type-id-1406' size-in-bits='64' id='type-id-1408'/>
+    <qualified-type-def type-id='type-id-1408' restrict='yes' id='type-id-1409'/>
+    <reference-type-def kind='lvalue' type-id='type-id-38' size-in-bits='64' id='type-id-1410'/>
+    <pointer-type-def type-id='type-id-38' size-in-bits='64' id='type-id-1411'/>
+    <pointer-type-def type-id='type-id-85' size-in-bits='64' id='type-id-1412'/>
+    <qualified-type-def type-id='type-id-1412' restrict='yes' id='type-id-1413'/>
+    <pointer-type-def type-id='type-id-1414' size-in-bits='64' id='type-id-69'/>
+    <reference-type-def kind='lvalue' type-id='type-id-40' size-in-bits='64' id='type-id-1415'/>
+    <pointer-type-def type-id='type-id-40' size-in-bits='64' id='type-id-1416'/>
+    <reference-type-def kind='lvalue' type-id='type-id-45' size-in-bits='64' id='type-id-1417'/>
+    <pointer-type-def type-id='type-id-93' size-in-bits='64' id='type-id-1418'/>
+    <qualified-type-def type-id='type-id-1418' restrict='yes' id='type-id-1419'/>
+    <pointer-type-def type-id='type-id-303' size-in-bits='64' id='type-id-1420'/>
+    <reference-type-def kind='lvalue' type-id='type-id-306' size-in-bits='64' id='type-id-1421'/>
+    <pointer-type-def type-id='type-id-306' size-in-bits='64' id='type-id-1422'/>
+    <reference-type-def kind='lvalue' type-id='type-id-310' size-in-bits='64' id='type-id-1423'/>
+    <reference-type-def kind='rvalue' type-id='type-id-310' size-in-bits='64' id='type-id-1424'/>
+    <pointer-type-def type-id='type-id-310' size-in-bits='64' id='type-id-1425'/>
+    <reference-type-def kind='lvalue' type-id='type-id-314' size-in-bits='64' id='type-id-1426'/>
+    <pointer-type-def type-id='type-id-314' size-in-bits='64' id='type-id-1427'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1428' size-in-bits='64' id='type-id-1429'/>
+    <reference-type-def kind='lvalue' type-id='type-id-317' size-in-bits='64' id='type-id-1430'/>
+    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-1431'/>
+    <pointer-type-def type-id='type-id-321' size-in-bits='64' id='type-id-1432'/>
+    <pointer-type-def type-id='type-id-324' size-in-bits='64' id='type-id-1433'/>
+    <reference-type-def kind='lvalue' type-id='type-id-327' size-in-bits='64' id='type-id-1434'/>
+    <pointer-type-def type-id='type-id-327' size-in-bits='64' id='type-id-1435'/>
+    <reference-type-def kind='lvalue' type-id='type-id-330' size-in-bits='64' id='type-id-1436'/>
+    <pointer-type-def type-id='type-id-330' size-in-bits='64' id='type-id-1437'/>
+    <pointer-type-def type-id='type-id-336' size-in-bits='64' id='type-id-1438'/>
+    <pointer-type-def type-id='type-id-342' size-in-bits='64' id='type-id-1439'/>
+    <reference-type-def kind='lvalue' type-id='type-id-346' size-in-bits='64' id='type-id-1440'/>
+    <pointer-type-def type-id='type-id-346' size-in-bits='64' id='type-id-1441'/>
+    <reference-type-def kind='lvalue' type-id='type-id-350' size-in-bits='64' id='type-id-1442'/>
+    <pointer-type-def type-id='type-id-350' size-in-bits='64' id='type-id-1443'/>
+    <pointer-type-def type-id='type-id-1444' size-in-bits='64' id='type-id-1445'/>
+    <reference-type-def kind='rvalue' type-id='type-id-48' size-in-bits='64' id='type-id-1446'/>
+    <pointer-type-def type-id='type-id-356' size-in-bits='64' id='type-id-1447'/>
+    <pointer-type-def type-id='type-id-1448' size-in-bits='64' id='type-id-1449'/>
+    <reference-type-def kind='lvalue' type-id='type-id-360' size-in-bits='64' id='type-id-1450'/>
+    <reference-type-def kind='rvalue' type-id='type-id-360' size-in-bits='64' id='type-id-1451'/>
+    <pointer-type-def type-id='type-id-360' size-in-bits='64' id='type-id-1452'/>
+    <reference-type-def kind='lvalue' type-id='type-id-364' size-in-bits='64' id='type-id-1453'/>
+    <pointer-type-def type-id='type-id-364' size-in-bits='64' id='type-id-1454'/>
+    <reference-type-def kind='lvalue' type-id='type-id-367' size-in-bits='64' id='type-id-1455'/>
+    <reference-type-def kind='rvalue' type-id='type-id-367' size-in-bits='64' id='type-id-1456'/>
+    <pointer-type-def type-id='type-id-367' size-in-bits='64' id='type-id-1457'/>
     <pointer-type-def type-id='type-id-1458' size-in-bits='64' id='type-id-1459'/>
-    <reference-type-def kind='lvalue' type-id='type-id-380' size-in-bits='64' id='type-id-1460'/>
-    <pointer-type-def type-id='type-id-380' size-in-bits='64' id='type-id-1461'/>
-    <reference-type-def kind='lvalue' type-id='type-id-384' size-in-bits='64' id='type-id-1462'/>
-    <reference-type-def kind='rvalue' type-id='type-id-384' size-in-bits='64' id='type-id-1463'/>
-    <pointer-type-def type-id='type-id-384' size-in-bits='64' id='type-id-1464'/>
-    <reference-type-def kind='lvalue' type-id='type-id-388' size-in-bits='64' id='type-id-1465'/>
-    <reference-type-def kind='rvalue' type-id='type-id-388' size-in-bits='64' id='type-id-1466'/>
-    <pointer-type-def type-id='type-id-388' size-in-bits='64' id='type-id-1467'/>
-    <reference-type-def kind='lvalue' type-id='type-id-392' size-in-bits='64' id='type-id-1468'/>
-    <reference-type-def kind='rvalue' type-id='type-id-392' size-in-bits='64' id='type-id-1469'/>
-    <pointer-type-def type-id='type-id-392' size-in-bits='64' id='type-id-1470'/>
-    <reference-type-def kind='lvalue' type-id='type-id-398' size-in-bits='64' id='type-id-1471'/>
-    <reference-type-def kind='rvalue' type-id='type-id-398' size-in-bits='64' id='type-id-1472'/>
-    <pointer-type-def type-id='type-id-398' size-in-bits='64' id='type-id-1473'/>
-    <reference-type-def kind='lvalue' type-id='type-id-402' size-in-bits='64' id='type-id-1474'/>
-    <reference-type-def kind='rvalue' type-id='type-id-402' size-in-bits='64' id='type-id-1475'/>
-    <pointer-type-def type-id='type-id-402' size-in-bits='64' id='type-id-1476'/>
-    <pointer-type-def type-id='type-id-406' size-in-bits='64' id='type-id-1477'/>
-    <reference-type-def kind='lvalue' type-id='type-id-412' size-in-bits='64' id='type-id-1478'/>
-    <pointer-type-def type-id='type-id-412' size-in-bits='64' id='type-id-1479'/>
-    <pointer-type-def type-id='type-id-416' size-in-bits='64' id='type-id-1480'/>
-    <pointer-type-def type-id='type-id-420' size-in-bits='64' id='type-id-1481'/>
-    <reference-type-def kind='lvalue' type-id='type-id-423' size-in-bits='64' id='type-id-1482'/>
-    <pointer-type-def type-id='type-id-423' size-in-bits='64' id='type-id-1483'/>
-    <reference-type-def kind='lvalue' type-id='type-id-427' size-in-bits='64' id='type-id-1484'/>
-    <pointer-type-def type-id='type-id-427' size-in-bits='64' id='type-id-1485'/>
-    <qualified-type-def type-id='type-id-1485' const='yes' id='type-id-1486'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1486' size-in-bits='64' id='type-id-1487'/>
-    <reference-type-def kind='lvalue' type-id='type-id-431' size-in-bits='64' id='type-id-1488'/>
-    <pointer-type-def type-id='type-id-431' size-in-bits='64' id='type-id-1489'/>
-    <pointer-type-def type-id='type-id-434' size-in-bits='64' id='type-id-1490'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1491' size-in-bits='64' id='type-id-1492'/>
-    <reference-type-def kind='rvalue' type-id='type-id-1491' size-in-bits='64' id='type-id-1493'/>
-    <pointer-type-def type-id='type-id-1491' size-in-bits='64' id='type-id-1494'/>
-    <pointer-type-def type-id='type-id-1495' size-in-bits='64' id='type-id-1496'/>
-    <reference-type-def kind='lvalue' type-id='type-id-437' size-in-bits='64' id='type-id-1497'/>
-    <pointer-type-def type-id='type-id-437' size-in-bits='64' id='type-id-1498'/>
+    <reference-type-def kind='lvalue' type-id='type-id-371' size-in-bits='64' id='type-id-1460'/>
+    <reference-type-def kind='rvalue' type-id='type-id-371' size-in-bits='64' id='type-id-1461'/>
+    <pointer-type-def type-id='type-id-371' size-in-bits='64' id='type-id-1462'/>
+    <pointer-type-def type-id='type-id-375' size-in-bits='64' id='type-id-1463'/>
+    <pointer-type-def type-id='type-id-378' size-in-bits='64' id='type-id-1464'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1465' size-in-bits='64' id='type-id-1466'/>
+    <reference-type-def kind='lvalue' type-id='type-id-381' size-in-bits='64' id='type-id-1467'/>
+    <pointer-type-def type-id='type-id-381' size-in-bits='64' id='type-id-1468'/>
+    <pointer-type-def type-id='type-id-385' size-in-bits='64' id='type-id-1469'/>
+    <pointer-type-def type-id='type-id-389' size-in-bits='64' id='type-id-1470'/>
+    <pointer-type-def type-id='type-id-1471' size-in-bits='64' id='type-id-1472'/>
+    <reference-type-def kind='lvalue' type-id='type-id-393' size-in-bits='64' id='type-id-1473'/>
+    <pointer-type-def type-id='type-id-393' size-in-bits='64' id='type-id-1474'/>
+    <reference-type-def kind='lvalue' type-id='type-id-397' size-in-bits='64' id='type-id-1475'/>
+    <reference-type-def kind='rvalue' type-id='type-id-397' size-in-bits='64' id='type-id-1476'/>
+    <pointer-type-def type-id='type-id-397' size-in-bits='64' id='type-id-1477'/>
+    <reference-type-def kind='lvalue' type-id='type-id-401' size-in-bits='64' id='type-id-1478'/>
+    <reference-type-def kind='rvalue' type-id='type-id-401' size-in-bits='64' id='type-id-1479'/>
+    <pointer-type-def type-id='type-id-401' size-in-bits='64' id='type-id-1480'/>
+    <reference-type-def kind='lvalue' type-id='type-id-405' size-in-bits='64' id='type-id-1481'/>
+    <reference-type-def kind='rvalue' type-id='type-id-405' size-in-bits='64' id='type-id-1482'/>
+    <pointer-type-def type-id='type-id-405' size-in-bits='64' id='type-id-1483'/>
+    <reference-type-def kind='lvalue' type-id='type-id-411' size-in-bits='64' id='type-id-1484'/>
+    <reference-type-def kind='rvalue' type-id='type-id-411' size-in-bits='64' id='type-id-1485'/>
+    <pointer-type-def type-id='type-id-411' size-in-bits='64' id='type-id-1486'/>
+    <reference-type-def kind='lvalue' type-id='type-id-415' size-in-bits='64' id='type-id-1487'/>
+    <reference-type-def kind='rvalue' type-id='type-id-415' size-in-bits='64' id='type-id-1488'/>
+    <pointer-type-def type-id='type-id-415' size-in-bits='64' id='type-id-1489'/>
+    <pointer-type-def type-id='type-id-419' size-in-bits='64' id='type-id-1490'/>
+    <reference-type-def kind='lvalue' type-id='type-id-425' size-in-bits='64' id='type-id-1491'/>
+    <pointer-type-def type-id='type-id-425' size-in-bits='64' id='type-id-1492'/>
+    <pointer-type-def type-id='type-id-429' size-in-bits='64' id='type-id-1493'/>
+    <pointer-type-def type-id='type-id-433' size-in-bits='64' id='type-id-1494'/>
+    <reference-type-def kind='lvalue' type-id='type-id-436' size-in-bits='64' id='type-id-1495'/>
+    <pointer-type-def type-id='type-id-436' size-in-bits='64' id='type-id-1496'/>
+    <reference-type-def kind='lvalue' type-id='type-id-440' size-in-bits='64' id='type-id-1497'/>
+    <pointer-type-def type-id='type-id-440' size-in-bits='64' id='type-id-1498'/>
     <qualified-type-def type-id='type-id-1498' const='yes' id='type-id-1499'/>
     <reference-type-def kind='lvalue' type-id='type-id-1499' size-in-bits='64' id='type-id-1500'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1498' size-in-bits='64' id='type-id-1501'/>
-    <reference-type-def kind='rvalue' type-id='type-id-1498' size-in-bits='64' id='type-id-1502'/>
-    <pointer-type-def type-id='type-id-1503' size-in-bits='64' id='type-id-1504'/>
-    <reference-type-def kind='lvalue' type-id='type-id-441' size-in-bits='64' id='type-id-1505'/>
-    <pointer-type-def type-id='type-id-441' size-in-bits='64' id='type-id-1506'/>
-    <reference-type-def kind='lvalue' type-id='type-id-445' size-in-bits='64' id='type-id-1507'/>
-    <reference-type-def kind='rvalue' type-id='type-id-445' size-in-bits='64' id='type-id-1508'/>
-    <pointer-type-def type-id='type-id-445' size-in-bits='64' id='type-id-1509'/>
-    <pointer-type-def type-id='type-id-1510' size-in-bits='64' id='type-id-1511'/>
-    <pointer-type-def type-id='type-id-1512' size-in-bits='64' id='type-id-1513'/>
-    <reference-type-def kind='lvalue' type-id='type-id-449' size-in-bits='64' id='type-id-1514'/>
-    <pointer-type-def type-id='type-id-449' size-in-bits='64' id='type-id-1515'/>
-    <reference-type-def kind='lvalue' type-id='type-id-92' size-in-bits='64' id='type-id-1516'/>
-    <reference-type-def kind='lvalue' type-id='type-id-458' size-in-bits='64' id='type-id-1517'/>
-    <pointer-type-def type-id='type-id-458' size-in-bits='64' id='type-id-1518'/>
-    <reference-type-def kind='lvalue' type-id='type-id-462' size-in-bits='64' id='type-id-1519'/>
-    <reference-type-def kind='rvalue' type-id='type-id-462' size-in-bits='64' id='type-id-1520'/>
-    <pointer-type-def type-id='type-id-462' size-in-bits='64' id='type-id-1521'/>
-    <qualified-type-def type-id='type-id-1521' const='yes' id='type-id-1522'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1522' size-in-bits='64' id='type-id-1523'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1521' size-in-bits='64' id='type-id-1524'/>
-    <reference-type-def kind='lvalue' type-id='type-id-465' size-in-bits='64' id='type-id-1525'/>
-    <reference-type-def kind='rvalue' type-id='type-id-465' size-in-bits='64' id='type-id-1526'/>
-    <pointer-type-def type-id='type-id-465' size-in-bits='64' id='type-id-1527'/>
-    <qualified-type-def type-id='type-id-1527' const='yes' id='type-id-1528'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1528' size-in-bits='64' id='type-id-1529'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1527' size-in-bits='64' id='type-id-1530'/>
-    <reference-type-def kind='lvalue' type-id='type-id-468' size-in-bits='64' id='type-id-1531'/>
-    <reference-type-def kind='rvalue' type-id='type-id-468' size-in-bits='64' id='type-id-1532'/>
-    <pointer-type-def type-id='type-id-468' size-in-bits='64' id='type-id-1533'/>
-    <qualified-type-def type-id='type-id-1533' const='yes' id='type-id-1534'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1534' size-in-bits='64' id='type-id-1535'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1533' size-in-bits='64' id='type-id-1536'/>
-    <reference-type-def kind='lvalue' type-id='type-id-471' size-in-bits='64' id='type-id-1537'/>
-    <reference-type-def kind='rvalue' type-id='type-id-471' size-in-bits='64' id='type-id-1538'/>
-    <pointer-type-def type-id='type-id-471' size-in-bits='64' id='type-id-1539'/>
-    <qualified-type-def type-id='type-id-1539' const='yes' id='type-id-1540'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1540' size-in-bits='64' id='type-id-1541'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1539' size-in-bits='64' id='type-id-1542'/>
-    <reference-type-def kind='lvalue' type-id='type-id-474' size-in-bits='64' id='type-id-1543'/>
-    <reference-type-def kind='rvalue' type-id='type-id-474' size-in-bits='64' id='type-id-1544'/>
-    <pointer-type-def type-id='type-id-474' size-in-bits='64' id='type-id-1545'/>
-    <reference-type-def kind='lvalue' type-id='type-id-477' size-in-bits='64' id='type-id-1546'/>
-    <reference-type-def kind='rvalue' type-id='type-id-477' size-in-bits='64' id='type-id-1547'/>
-    <pointer-type-def type-id='type-id-477' size-in-bits='64' id='type-id-1548'/>
-    <reference-type-def kind='lvalue' type-id='type-id-480' size-in-bits='64' id='type-id-1549'/>
-    <reference-type-def kind='rvalue' type-id='type-id-480' size-in-bits='64' id='type-id-1550'/>
-    <pointer-type-def type-id='type-id-480' size-in-bits='64' id='type-id-1551'/>
-    <qualified-type-def type-id='type-id-1551' const='yes' id='type-id-1552'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1552' size-in-bits='64' id='type-id-1553'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1551' size-in-bits='64' id='type-id-1554'/>
-    <reference-type-def kind='lvalue' type-id='type-id-483' size-in-bits='64' id='type-id-1555'/>
-    <reference-type-def kind='rvalue' type-id='type-id-483' size-in-bits='64' id='type-id-1556'/>
-    <pointer-type-def type-id='type-id-483' size-in-bits='64' id='type-id-1557'/>
-    <qualified-type-def type-id='type-id-1557' const='yes' id='type-id-1558'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1558' size-in-bits='64' id='type-id-1559'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1557' size-in-bits='64' id='type-id-1560'/>
-    <reference-type-def kind='lvalue' type-id='type-id-486' size-in-bits='64' id='type-id-1561'/>
-    <reference-type-def kind='rvalue' type-id='type-id-486' size-in-bits='64' id='type-id-1562'/>
-    <pointer-type-def type-id='type-id-486' size-in-bits='64' id='type-id-1563'/>
-    <qualified-type-def type-id='type-id-1563' const='yes' id='type-id-1564'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1564' size-in-bits='64' id='type-id-1565'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1563' size-in-bits='64' id='type-id-1566'/>
-    <reference-type-def kind='lvalue' type-id='type-id-489' size-in-bits='64' id='type-id-1567'/>
-    <reference-type-def kind='rvalue' type-id='type-id-489' size-in-bits='64' id='type-id-1568'/>
-    <pointer-type-def type-id='type-id-489' size-in-bits='64' id='type-id-1569'/>
-    <qualified-type-def type-id='type-id-1569' const='yes' id='type-id-1570'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1570' size-in-bits='64' id='type-id-1571'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1569' size-in-bits='64' id='type-id-1572'/>
-    <reference-type-def kind='rvalue' type-id='type-id-492' size-in-bits='64' id='type-id-1573'/>
-    <pointer-type-def type-id='type-id-492' size-in-bits='64' id='type-id-1574'/>
-    <pointer-type-def type-id='type-id-495' size-in-bits='64' id='type-id-1575'/>
-    <reference-type-def kind='lvalue' type-id='type-id-498' size-in-bits='64' id='type-id-1576'/>
-    <reference-type-def kind='rvalue' type-id='type-id-498' size-in-bits='64' id='type-id-1577'/>
-    <pointer-type-def type-id='type-id-498' size-in-bits='64' id='type-id-1578'/>
-    <pointer-type-def type-id='type-id-1579' size-in-bits='64' id='type-id-1580'/>
-    <reference-type-def kind='lvalue' type-id='type-id-1581' size-in-bits='64' id='type-id-1582'/>
-    <pointer-type-def type-id='type-id-1583' size-in-bits='64' id='type-id-1584'/>
-    <reference-type-def kind='lvalue' type-id='type-id-511' size-in-bits='64' id='type-id-1585'/>
-    <reference-type-def kind='rvalue' type-id='type-id-511' size-in-bits='64' id='type-id-1586'/>
-    <pointer-type-def type-id='type-id-511' size-in-bits='64' id='type-id-1587'/>
-    <reference-type-def kind='lvalue' type-id='type-id-514' size-in-bits='64' id='type-id-1588'/>
-    <reference-type-def kind='rvalue' type-id='type-id-514' size-in-bits='64' id='type-id-1589'/>
-    <pointer-type-def type-id='type-id-514' size-in-bits='64' id='type-id-1590'/>
-    <reference-type-def kind='lvalue' type-id='type-id-517' size-in-bits='64' id='type-id-1591'/>
-    <reference-type-def kind='rvalue' type-id='type-id-517' size-in-bits='64' id='type-id-1592'/>
-    <pointer-type-def type-id='type-id-517' size-in-bits='64' id='type-id-1593'/>
-    <reference-type-def kind='lvalue' type-id='type-id-520' size-in-bits='64' id='type-id-1594'/>
-    <reference-type-def kind='rvalue' type-id='type-id-520' size-in-bits='64' id='type-id-1595'/>
-    <pointer-type-def type-id='type-id-520' size-in-bits='64' id='type-id-1596'/>
-    <reference-type-def kind='lvalue' type-id='type-id-523' size-in-bits='64' id='type-id-1597'/>
-    <reference-type-def kind='rvalue' type-id='type-id-523' size-in-bits='64' id='type-id-1598'/>
-    <pointer-type-def type-id='type-id-523' size-in-bits='64' id='type-id-1599'/>
-    <reference-type-def kind='lvalue' type-id='type-id-526' size-in-bits='64' id='type-id-1600'/>
-    <reference-type-def kind='rvalue' type-id='type-id-526' size-in-bits='64' id='type-id-1601'/>
-    <pointer-type-def type-id='type-id-526' size-in-bits='64' id='type-id-1602'/>
-    <reference-type-def kind='lvalue' type-id='type-id-529' size-in-bits='64' id='type-id-1603'/>
-    <reference-type-def kind='rvalue' type-id='type-id-529' size-in-bits='64' id='type-id-1604'/>
-    <pointer-type-def type-id='type-id-529' size-in-bits='64' id='type-id-1605'/>
-    <reference-type-def kind='lvalue' type-id='type-id-532' size-in-bits='64' id='type-id-1606'/>
-    <reference-type-def kind='rvalue' type-id='type-id-532' size-in-bits='64' id='type-id-1607'/>
-    <pointer-type-def type-id='type-id-532' size-in-bits='64' id='type-id-1608'/>
-    <reference-type-def kind='lvalue' type-id='type-id-535' size-in-bits='64' id='type-id-1609'/>
-    <reference-type-def kind='rvalue' type-id='type-id-535' size-in-bits='64' id='type-id-1610'/>
-    <pointer-type-def type-id='type-id-535' size-in-bits='64' id='type-id-1611'/>
-    <reference-type-def kind='lvalue' type-id='type-id-538' size-in-bits='64' id='type-id-1612'/>
-    <reference-type-def kind='rvalue' type-id='type-id-538' size-in-bits='64' id='type-id-1613'/>
-    <pointer-type-def type-id='type-id-538' size-in-bits='64' id='type-id-1614'/>
-    <reference-type-def kind='lvalue' type-id='type-id-541' size-in-bits='64' id='type-id-1615'/>
-    <reference-type-def kind='rvalue' type-id='type-id-541' size-in-bits='64' id='type-id-1616'/>
-    <pointer-type-def type-id='type-id-541' size-in-bits='64' id='type-id-1617'/>
-    <reference-type-def kind='lvalue' type-id='type-id-544' size-in-bits='64' id='type-id-1618'/>
-    <reference-type-def kind='rvalue' type-id='type-id-544' size-in-bits='64' id='type-id-1619'/>
-    <pointer-type-def type-id='type-id-544' size-in-bits='64' id='type-id-1620'/>
-    <reference-type-def kind='lvalue' type-id='type-id-547' size-in-bits='64' id='type-id-1621'/>
-    <reference-type-def kind='rvalue' type-id='type-id-547' size-in-bits='64' id='type-id-1622'/>
-    <pointer-type-def type-id='type-id-547' size-in-bits='64' id='type-id-1623'/>
-    <reference-type-def kind='lvalue' type-id='type-id-550' size-in-bits='64' id='type-id-1624'/>
-    <reference-type-def kind='rvalue' type-id='type-id-550' size-in-bits='64' id='type-id-1625'/>
-    <pointer-type-def type-id='type-id-550' size-in-bits='64' id='type-id-1626'/>
-    <reference-type-def kind='lvalue' type-id='type-id-553' size-in-bits='64' id='type-id-1627'/>
-    <reference-type-def kind='rvalue' type-id='type-id-553' size-in-bits='64' id='type-id-1628'/>
-    <pointer-type-def type-id='type-id-553' size-in-bits='64' id='type-id-1629'/>
-    <reference-type-def kind='lvalue' type-id='type-id-556' size-in-bits='64' id='type-id-1630'/>
-    <reference-type-def kind='rvalue' type-id='type-id-556' size-in-bits='64' id='type-id-1631'/>
-    <pointer-type-def type-id='type-id-556' size-in-bits='64' id='type-id-1632'/>
-    <reference-type-def kind='lvalue' type-id='type-id-559' size-in-bits='64' id='type-id-1633'/>
-    <reference-type-def kind='rvalue' type-id='type-id-559' size-in-bits='64' id='type-id-1634'/>
-    <pointer-type-def type-id='type-id-559' size-in-bits='64' id='type-id-1635'/>
-    <reference-type-def kind='lvalue' type-id='type-id-562' size-in-bits='64' id='type-id-1636'/>
-    <reference-type-def kind='rvalue' type-id='type-id-562' size-in-bits='64' id='type-id-1637'/>
-    <pointer-type-def type-id='type-id-562' size-in-bits='64' id='type-id-1638'/>
-    <reference-type-def kind='lvalue' type-id='type-id-565' size-in-bits='64' id='type-id-1639'/>
-    <reference-type-def kind='rvalue' type-id='type-id-565' size-in-bits='64' id='type-id-1640'/>
-    <pointer-type-def type-id='type-id-565' size-in-bits='64' id='type-id-1641'/>
-    <reference-type-def kind='lvalue' type-id='type-id-568' size-in-bits='64' id='type-id-1642'/>
-    <reference-type-def kind='rvalue' type-id='type-id-568' size-in-bits='64' id='type-id-1643'/>
-    <pointer-type-def type-id='type-id-568' size-in-bits='64' id='type-id-1644'/>
-    <reference-type-def kind='lvalue' type-id='type-id-571' size-in-bits='64' id='type-id-1645'/>
-    <reference-type-def kind='rvalue' type-id='type-id-571' size-in-bits='64' id='type-id-1646'/>
-    <pointer-type-def type-id='type-id-571' size-in-bits='64' id='type-id-1647'/>
-    <reference-type-def kind='lvalue' type-id='type-id-574' size-in-bits='64' id='type-id-1648'/>
-    <reference-type-def kind='rvalue' type-id='type-id-574' size-in-bits='64' id='type-id-1649'/>
-    <pointer-type-def type-id='type-id-574' size-in-bits='64' id='type-id-1650'/>
-    <reference-type-def kind='lvalue' type-id='type-id-577' size-in-bits='64' id='type-id-1651'/>
-    <reference-type-def kind='rvalue' type-id='type-id-577' size-in-bits='64' id='type-id-1652'/>
-    <pointer-type-def type-id='type-id-577' size-in-bits='64' id='type-id-1653'/>
-    <reference-type-def kind='lvalue' type-id='type-id-580' size-in-bits='64' id='type-id-1654'/>
-    <reference-type-def kind='rvalue' type-id='type-id-580' size-in-bits='64' id='type-id-1655'/>
-    <pointer-type-def type-id='type-id-580' size-in-bits='64' id='type-id-1656'/>
-    <reference-type-def kind='lvalue' type-id='type-id-583' size-in-bits='64' id='type-id-1657'/>
-    <reference-type-def kind='rvalue' type-id='type-id-583' size-in-bits='64' id='type-id-1658'/>
-    <pointer-type-def type-id='type-id-583' size-in-bits='64' id='type-id-1659'/>
-    <reference-type-def kind='lvalue' type-id='type-id-586' size-in-bits='64' id='type-id-1660'/>
-    <reference-type-def kind='rvalue' type-id='type-id-586' size-in-bits='64' id='type-id-1661'/>
-    <pointer-type-def type-id='type-id-586' size-in-bits='64' id='type-id-1662'/>
-    <reference-type-def kind='lvalue' type-id='type-id-589' size-in-bits='64' id='type-id-1663'/>
-    <reference-type-def kind='rvalue' type-id='type-id-589' size-in-bits='64' id='type-id-1664'/>
-    <pointer-type-def type-id='type-id-589' size-in-bits='64' id='type-id-1665'/>
-    <reference-type-def kind='lvalue' type-id='type-id-592' size-in-bits='64' id='type-id-1666'/>
-    <reference-type-def kind='rvalue' type-id='type-id-592' size-in-bits='64' id='type-id-1667'/>
-    <pointer-type-def type-id='type-id-592' size-in-bits='64' id='type-id-1668'/>
-    <reference-type-def kind='lvalue' type-id='type-id-595' size-in-bits='64' id='type-id-1669'/>
-    <reference-type-def kind='rvalue' type-id='type-id-595' size-in-bits='64' id='type-id-1670'/>
-    <pointer-type-def type-id='type-id-595' size-in-bits='64' id='type-id-1671'/>
-    <reference-type-def kind='lvalue' type-id='type-id-598' size-in-bits='64' id='type-id-1672'/>
-    <reference-type-def kind='rvalue' type-id='type-id-598' size-in-bits='64' id='type-id-1673'/>
-    <pointer-type-def type-id='type-id-598' size-in-bits='64' id='type-id-1674'/>
-    <reference-type-def kind='lvalue' type-id='type-id-601' size-in-bits='64' id='type-id-1675'/>
-    <reference-type-def kind='rvalue' type-id='type-id-601' size-in-bits='64' id='type-id-1676'/>
-    <pointer-type-def type-id='type-id-601' size-in-bits='64' id='type-id-1677'/>
-    <reference-type-def kind='lvalue' type-id='type-id-604' size-in-bits='64' id='type-id-1678'/>
-    <reference-type-def kind='rvalue' type-id='type-id-604' size-in-bits='64' id='type-id-1679'/>
-    <pointer-type-def type-id='type-id-604' size-in-bits='64' id='type-id-1680'/>
-    <reference-type-def kind='lvalue' type-id='type-id-607' size-in-bits='64' id='type-id-1681'/>
-    <reference-type-def kind='rvalue' type-id='type-id-607' size-in-bits='64' id='type-id-1682'/>
-    <pointer-type-def type-id='type-id-607' size-in-bits='64' id='type-id-1683'/>
-    <reference-type-def kind='lvalue' type-id='type-id-610' size-in-bits='64' id='type-id-1684'/>
-    <reference-type-def kind='rvalue' type-id='type-id-610' size-in-bits='64' id='type-id-1685'/>
-    <pointer-type-def type-id='type-id-610' size-in-bits='64' id='type-id-1686'/>
-    <reference-type-def kind='rvalue' type-id='type-id-613' size-in-bits='64' id='type-id-1687'/>
-    <pointer-type-def type-id='type-id-613' size-in-bits='64' id='type-id-1688'/>
-    <pointer-type-def type-id='type-id-1689' size-in-bits='64' id='type-id-1690'/>
+    <reference-type-def kind='lvalue' type-id='type-id-444' size-in-bits='64' id='type-id-1501'/>
+    <pointer-type-def type-id='type-id-444' size-in-bits='64' id='type-id-1502'/>
+    <pointer-type-def type-id='type-id-447' size-in-bits='64' id='type-id-1503'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1504' size-in-bits='64' id='type-id-1505'/>
+    <reference-type-def kind='rvalue' type-id='type-id-1504' size-in-bits='64' id='type-id-1506'/>
+    <pointer-type-def type-id='type-id-1504' size-in-bits='64' id='type-id-1507'/>
+    <pointer-type-def type-id='type-id-1508' size-in-bits='64' id='type-id-1509'/>
+    <reference-type-def kind='lvalue' type-id='type-id-118' size-in-bits='64' id='type-id-1510'/>
+    <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-1511'/>
+    <qualified-type-def type-id='type-id-1511' const='yes' id='type-id-1512'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1512' size-in-bits='64' id='type-id-1513'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1511' size-in-bits='64' id='type-id-1514'/>
+    <reference-type-def kind='rvalue' type-id='type-id-1511' size-in-bits='64' id='type-id-1515'/>
+    <pointer-type-def type-id='type-id-1516' size-in-bits='64' id='type-id-1517'/>
+    <reference-type-def kind='lvalue' type-id='type-id-453' size-in-bits='64' id='type-id-1518'/>
+    <pointer-type-def type-id='type-id-453' size-in-bits='64' id='type-id-1519'/>
+    <reference-type-def kind='lvalue' type-id='type-id-457' size-in-bits='64' id='type-id-1520'/>
+    <reference-type-def kind='rvalue' type-id='type-id-457' size-in-bits='64' id='type-id-1521'/>
+    <pointer-type-def type-id='type-id-457' size-in-bits='64' id='type-id-1522'/>
+    <pointer-type-def type-id='type-id-1523' size-in-bits='64' id='type-id-1524'/>
+    <pointer-type-def type-id='type-id-1525' size-in-bits='64' id='type-id-1526'/>
+    <reference-type-def kind='lvalue' type-id='type-id-461' size-in-bits='64' id='type-id-1527'/>
+    <pointer-type-def type-id='type-id-461' size-in-bits='64' id='type-id-1528'/>
+    <reference-type-def kind='lvalue' type-id='type-id-97' size-in-bits='64' id='type-id-1529'/>
+    <reference-type-def kind='lvalue' type-id='type-id-470' size-in-bits='64' id='type-id-1530'/>
+    <pointer-type-def type-id='type-id-470' size-in-bits='64' id='type-id-1531'/>
+    <reference-type-def kind='lvalue' type-id='type-id-474' size-in-bits='64' id='type-id-1532'/>
+    <reference-type-def kind='rvalue' type-id='type-id-474' size-in-bits='64' id='type-id-1533'/>
+    <pointer-type-def type-id='type-id-474' size-in-bits='64' id='type-id-1534'/>
+    <qualified-type-def type-id='type-id-1534' const='yes' id='type-id-1535'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1535' size-in-bits='64' id='type-id-1536'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1534' size-in-bits='64' id='type-id-1537'/>
+    <reference-type-def kind='lvalue' type-id='type-id-477' size-in-bits='64' id='type-id-1538'/>
+    <reference-type-def kind='rvalue' type-id='type-id-477' size-in-bits='64' id='type-id-1539'/>
+    <pointer-type-def type-id='type-id-477' size-in-bits='64' id='type-id-1540'/>
+    <qualified-type-def type-id='type-id-1540' const='yes' id='type-id-1541'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1541' size-in-bits='64' id='type-id-1542'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1540' size-in-bits='64' id='type-id-1543'/>
+    <reference-type-def kind='lvalue' type-id='type-id-480' size-in-bits='64' id='type-id-1544'/>
+    <reference-type-def kind='rvalue' type-id='type-id-480' size-in-bits='64' id='type-id-1545'/>
+    <pointer-type-def type-id='type-id-480' size-in-bits='64' id='type-id-1546'/>
+    <qualified-type-def type-id='type-id-1546' const='yes' id='type-id-1547'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1547' size-in-bits='64' id='type-id-1548'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1546' size-in-bits='64' id='type-id-1549'/>
+    <reference-type-def kind='lvalue' type-id='type-id-483' size-in-bits='64' id='type-id-1550'/>
+    <reference-type-def kind='rvalue' type-id='type-id-483' size-in-bits='64' id='type-id-1551'/>
+    <pointer-type-def type-id='type-id-483' size-in-bits='64' id='type-id-1552'/>
+    <qualified-type-def type-id='type-id-1552' const='yes' id='type-id-1553'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1553' size-in-bits='64' id='type-id-1554'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1552' size-in-bits='64' id='type-id-1555'/>
+    <reference-type-def kind='lvalue' type-id='type-id-486' size-in-bits='64' id='type-id-1556'/>
+    <reference-type-def kind='rvalue' type-id='type-id-486' size-in-bits='64' id='type-id-1557'/>
+    <pointer-type-def type-id='type-id-486' size-in-bits='64' id='type-id-1558'/>
+    <reference-type-def kind='lvalue' type-id='type-id-489' size-in-bits='64' id='type-id-1559'/>
+    <reference-type-def kind='rvalue' type-id='type-id-489' size-in-bits='64' id='type-id-1560'/>
+    <pointer-type-def type-id='type-id-489' size-in-bits='64' id='type-id-1561'/>
+    <reference-type-def kind='lvalue' type-id='type-id-492' size-in-bits='64' id='type-id-1562'/>
+    <reference-type-def kind='rvalue' type-id='type-id-492' size-in-bits='64' id='type-id-1563'/>
+    <pointer-type-def type-id='type-id-492' size-in-bits='64' id='type-id-1564'/>
+    <qualified-type-def type-id='type-id-1564' const='yes' id='type-id-1565'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1565' size-in-bits='64' id='type-id-1566'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1564' size-in-bits='64' id='type-id-1567'/>
+    <reference-type-def kind='lvalue' type-id='type-id-495' size-in-bits='64' id='type-id-1568'/>
+    <reference-type-def kind='rvalue' type-id='type-id-495' size-in-bits='64' id='type-id-1569'/>
+    <pointer-type-def type-id='type-id-495' size-in-bits='64' id='type-id-1570'/>
+    <qualified-type-def type-id='type-id-1570' const='yes' id='type-id-1571'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1571' size-in-bits='64' id='type-id-1572'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1570' size-in-bits='64' id='type-id-1573'/>
+    <reference-type-def kind='lvalue' type-id='type-id-498' size-in-bits='64' id='type-id-1574'/>
+    <reference-type-def kind='rvalue' type-id='type-id-498' size-in-bits='64' id='type-id-1575'/>
+    <pointer-type-def type-id='type-id-498' size-in-bits='64' id='type-id-1576'/>
+    <qualified-type-def type-id='type-id-1576' const='yes' id='type-id-1577'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1577' size-in-bits='64' id='type-id-1578'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1576' size-in-bits='64' id='type-id-1579'/>
+    <reference-type-def kind='lvalue' type-id='type-id-501' size-in-bits='64' id='type-id-1580'/>
+    <reference-type-def kind='rvalue' type-id='type-id-501' size-in-bits='64' id='type-id-1581'/>
+    <pointer-type-def type-id='type-id-501' size-in-bits='64' id='type-id-1582'/>
+    <qualified-type-def type-id='type-id-1582' const='yes' id='type-id-1583'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1583' size-in-bits='64' id='type-id-1584'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1582' size-in-bits='64' id='type-id-1585'/>
+    <reference-type-def kind='rvalue' type-id='type-id-504' size-in-bits='64' id='type-id-1586'/>
+    <pointer-type-def type-id='type-id-504' size-in-bits='64' id='type-id-1587'/>
+    <pointer-type-def type-id='type-id-507' size-in-bits='64' id='type-id-1588'/>
+    <reference-type-def kind='lvalue' type-id='type-id-510' size-in-bits='64' id='type-id-1589'/>
+    <reference-type-def kind='rvalue' type-id='type-id-510' size-in-bits='64' id='type-id-1590'/>
+    <pointer-type-def type-id='type-id-510' size-in-bits='64' id='type-id-1591'/>
+    <pointer-type-def type-id='type-id-1592' size-in-bits='64' id='type-id-1593'/>
+    <reference-type-def kind='lvalue' type-id='type-id-1594' size-in-bits='64' id='type-id-1595'/>
+    <pointer-type-def type-id='type-id-1596' size-in-bits='64' id='type-id-1597'/>
+    <reference-type-def kind='lvalue' type-id='type-id-523' size-in-bits='64' id='type-id-1598'/>
+    <reference-type-def kind='rvalue' type-id='type-id-523' size-in-bits='64' id='type-id-1599'/>
+    <pointer-type-def type-id='type-id-523' size-in-bits='64' id='type-id-1600'/>
+    <reference-type-def kind='lvalue' type-id='type-id-526' size-in-bits='64' id='type-id-1601'/>
+    <reference-type-def kind='rvalue' type-id='type-id-526' size-in-bits='64' id='type-id-1602'/>
+    <pointer-type-def type-id='type-id-526' size-in-bits='64' id='type-id-1603'/>
+    <reference-type-def kind='lvalue' type-id='type-id-529' size-in-bits='64' id='type-id-1604'/>
+    <reference-type-def kind='rvalue' type-id='type-id-529' size-in-bits='64' id='type-id-1605'/>
+    <pointer-type-def type-id='type-id-529' size-in-bits='64' id='type-id-1606'/>
+    <reference-type-def kind='lvalue' type-id='type-id-532' size-in-bits='64' id='type-id-1607'/>
+    <reference-type-def kind='rvalue' type-id='type-id-532' size-in-bits='64' id='type-id-1608'/>
+    <pointer-type-def type-id='type-id-532' size-in-bits='64' id='type-id-1609'/>
+    <reference-type-def kind='lvalue' type-id='type-id-535' size-in-bits='64' id='type-id-1610'/>
+    <reference-type-def kind='rvalue' type-id='type-id-535' size-in-bits='64' id='type-id-1611'/>
+    <pointer-type-def type-id='type-id-535' size-in-bits='64' id='type-id-1612'/>
+    <reference-type-def kind='lvalue' type-id='type-id-538' size-in-bits='64' id='type-id-1613'/>
+    <reference-type-def kind='rvalue' type-id='type-id-538' size-in-bits='64' id='type-id-1614'/>
+    <pointer-type-def type-id='type-id-538' size-in-bits='64' id='type-id-1615'/>
+    <reference-type-def kind='lvalue' type-id='type-id-541' size-in-bits='64' id='type-id-1616'/>
+    <reference-type-def kind='rvalue' type-id='type-id-541' size-in-bits='64' id='type-id-1617'/>
+    <pointer-type-def type-id='type-id-541' size-in-bits='64' id='type-id-1618'/>
+    <reference-type-def kind='lvalue' type-id='type-id-544' size-in-bits='64' id='type-id-1619'/>
+    <reference-type-def kind='rvalue' type-id='type-id-544' size-in-bits='64' id='type-id-1620'/>
+    <pointer-type-def type-id='type-id-544' size-in-bits='64' id='type-id-1621'/>
+    <reference-type-def kind='lvalue' type-id='type-id-547' size-in-bits='64' id='type-id-1622'/>
+    <reference-type-def kind='rvalue' type-id='type-id-547' size-in-bits='64' id='type-id-1623'/>
+    <pointer-type-def type-id='type-id-547' size-in-bits='64' id='type-id-1624'/>
+    <reference-type-def kind='lvalue' type-id='type-id-550' size-in-bits='64' id='type-id-1625'/>
+    <reference-type-def kind='rvalue' type-id='type-id-550' size-in-bits='64' id='type-id-1626'/>
+    <pointer-type-def type-id='type-id-550' size-in-bits='64' id='type-id-1627'/>
+    <reference-type-def kind='lvalue' type-id='type-id-553' size-in-bits='64' id='type-id-1628'/>
+    <reference-type-def kind='rvalue' type-id='type-id-553' size-in-bits='64' id='type-id-1629'/>
+    <pointer-type-def type-id='type-id-553' size-in-bits='64' id='type-id-1630'/>
+    <reference-type-def kind='lvalue' type-id='type-id-556' size-in-bits='64' id='type-id-1631'/>
+    <reference-type-def kind='rvalue' type-id='type-id-556' size-in-bits='64' id='type-id-1632'/>
+    <pointer-type-def type-id='type-id-556' size-in-bits='64' id='type-id-1633'/>
+    <reference-type-def kind='lvalue' type-id='type-id-559' size-in-bits='64' id='type-id-1634'/>
+    <reference-type-def kind='rvalue' type-id='type-id-559' size-in-bits='64' id='type-id-1635'/>
+    <pointer-type-def type-id='type-id-559' size-in-bits='64' id='type-id-1636'/>
+    <reference-type-def kind='lvalue' type-id='type-id-562' size-in-bits='64' id='type-id-1637'/>
+    <reference-type-def kind='rvalue' type-id='type-id-562' size-in-bits='64' id='type-id-1638'/>
+    <pointer-type-def type-id='type-id-562' size-in-bits='64' id='type-id-1639'/>
+    <reference-type-def kind='lvalue' type-id='type-id-565' size-in-bits='64' id='type-id-1640'/>
+    <reference-type-def kind='rvalue' type-id='type-id-565' size-in-bits='64' id='type-id-1641'/>
+    <pointer-type-def type-id='type-id-565' size-in-bits='64' id='type-id-1642'/>
+    <reference-type-def kind='lvalue' type-id='type-id-568' size-in-bits='64' id='type-id-1643'/>
+    <reference-type-def kind='rvalue' type-id='type-id-568' size-in-bits='64' id='type-id-1644'/>
+    <pointer-type-def type-id='type-id-568' size-in-bits='64' id='type-id-1645'/>
+    <reference-type-def kind='lvalue' type-id='type-id-571' size-in-bits='64' id='type-id-1646'/>
+    <reference-type-def kind='rvalue' type-id='type-id-571' size-in-bits='64' id='type-id-1647'/>
+    <pointer-type-def type-id='type-id-571' size-in-bits='64' id='type-id-1648'/>
+    <reference-type-def kind='lvalue' type-id='type-id-574' size-in-bits='64' id='type-id-1649'/>
+    <reference-type-def kind='rvalue' type-id='type-id-574' size-in-bits='64' id='type-id-1650'/>
+    <pointer-type-def type-id='type-id-574' size-in-bits='64' id='type-id-1651'/>
+    <reference-type-def kind='lvalue' type-id='type-id-577' size-in-bits='64' id='type-id-1652'/>
+    <reference-type-def kind='rvalue' type-id='type-id-577' size-in-bits='64' id='type-id-1653'/>
+    <pointer-type-def type-id='type-id-577' size-in-bits='64' id='type-id-1654'/>
+    <reference-type-def kind='lvalue' type-id='type-id-580' size-in-bits='64' id='type-id-1655'/>
+    <reference-type-def kind='rvalue' type-id='type-id-580' size-in-bits='64' id='type-id-1656'/>
+    <pointer-type-def type-id='type-id-580' size-in-bits='64' id='type-id-1657'/>
+    <reference-type-def kind='lvalue' type-id='type-id-583' size-in-bits='64' id='type-id-1658'/>
+    <reference-type-def kind='rvalue' type-id='type-id-583' size-in-bits='64' id='type-id-1659'/>
+    <pointer-type-def type-id='type-id-583' size-in-bits='64' id='type-id-1660'/>
+    <reference-type-def kind='lvalue' type-id='type-id-586' size-in-bits='64' id='type-id-1661'/>
+    <reference-type-def kind='rvalue' type-id='type-id-586' size-in-bits='64' id='type-id-1662'/>
+    <pointer-type-def type-id='type-id-586' size-in-bits='64' id='type-id-1663'/>
+    <reference-type-def kind='lvalue' type-id='type-id-589' size-in-bits='64' id='type-id-1664'/>
+    <reference-type-def kind='rvalue' type-id='type-id-589' size-in-bits='64' id='type-id-1665'/>
+    <pointer-type-def type-id='type-id-589' size-in-bits='64' id='type-id-1666'/>
+    <reference-type-def kind='lvalue' type-id='type-id-592' size-in-bits='64' id='type-id-1667'/>
+    <reference-type-def kind='rvalue' type-id='type-id-592' size-in-bits='64' id='type-id-1668'/>
+    <pointer-type-def type-id='