public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: Dodji Seketeli <dodji@redhat.com>
To: Dodji Seketeli <dodji@redhat.com>
Cc: libabigail@sourceware.org,  woodard@redhat.com
Subject: [PATCH 4/6] dwarf-reader: Avoid having several functions with the same symbol
Date: Fri, 27 Nov 2020 18:07:20 +0100	[thread overview]
Message-ID: <87zh326853.fsf@redhat.com> (raw)
In-Reply-To: <87h7pa7n8c.fsf@redhat.com> (Dodji Seketeli's message of "Fri, 27 Nov 2020 17:56:03 +0100")

Hello,

In the DWARF debug info, a C++ class can be represented by pieces
throughout a given binary.

In this picture, a given virtual member function can be represented
several times; each time in one different piece of the C++ class.  In
a given piece of the class, a virtual member function can be
represented with its ELF symbol set.  In another one, the same virtual
member function can be represented without that ELF symbol set.  And
there can also be pieces of the class that don't have a given virtual
function.

To handle this, the DWARF reader constructs one class from all its
pieces scattered around.  It adds each virtual member function to the
class as it comes across them while scanning the DWARF.

Then there is a pass at the end of the process that sets ELF symbols
to the (virtual) member functions that need it.

The problem with that pass is that it sometimes sets the same ELF
symbol to more than one virtual member function.  Those virtual member
functions all have the same mangled name that correspond to the ELF
symbol; but only one of them is meant to be associated with the ELF
symbol.  In essence, that one is the one that is exported by the ELF
binary.

This patch teaches the pass that sets the ELF symbols of function to
avoid setting the same ELF symbol to more than one function.

The patch also avoids build_function_decl to set symbol to a function
if that symbol was already set to an existing function.

This patch thus fixes a class of issues what arise when comparing a
binary against its own ABIXML representation.  Those several functions
having the same ELF symbol would cause spurious changes in that
context.

	* src/abg-dwarf-reader.cc
	(read_context::symbol_already_belongs_to_a_function): Define new
	member function.
	(read_context::fixup_functions_with_no_symbols): Use the new
	symbol_already_belongs_to_a_function function to avoid setting a
	symbol that already belongs to a function.
	* tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
	* tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
	* tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
	* tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
	Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>

Applied to master.

---
 src/abg-dwarf-reader.cc                       |  53 ++++++-
 .../test-read-dwarf/PR22122-libftdc.so.abi    |   2 +-
 .../test-read-dwarf/test10-pr18818-gcc.so.abi |  10 +-
 .../test-read-dwarf/test16-pr18904.so.abi     |  48 +++---
 .../test22-pr19097-libstdc++.so.6.0.17.so.abi | 140 +++++++++---------
 5 files changed, 152 insertions(+), 101 deletions(-)

diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc
index 6e9f3cad..c2eb17d4 100644
--- a/src/abg-dwarf-reader.cc
+++ b/src/abg-dwarf-reader.cc
@@ -4630,6 +4630,40 @@ public:
       }
   }
 
+  /// Test if a symbol belongs to a function of the current ABI
+  /// corpus.
+  ///
+  /// This is a sub-routine of fixup_functions_with_no_symbols.
+  ///
+  /// @param fn the function symbol to consider.
+  ///
+  /// @returnt true if @p fn belongs to a function of the current ABI
+  /// corpus.
+  bool
+  symbol_already_belongs_to_a_function(elf_symbol_sptr& fn)
+  {
+    corpus_sptr corp = current_corpus();
+    if (!corp)
+      return false;
+
+    string id = fn->get_id_string();
+
+    const vector<function_decl*> *fns = corp->lookup_functions(id);
+    if (!fns)
+      return false;
+
+    for (vector<function_decl*>::const_iterator i = fns->begin();
+	 i != fns->end();
+	 ++i)
+      {
+	function_decl* f = *i;
+	ABG_ASSERT(f);
+	if (f->get_symbol())
+	  return true;
+      }
+    return false;
+  }
+
   /// Some functions described by DWARF may have their linkage name
   /// set, but no link to their actual underlying elf symbol.  When
   /// these are virtual member functions, comparing the enclosing type
@@ -4663,6 +4697,23 @@ public:
       if (elf_symbol_sptr sym =
 	  corp->lookup_function_symbol(i->second->get_linkage_name()))
 	{
+	  // So i->second is a virtual member function that was
+	  // previously scheduled to be set a function symbol.
+	  //
+	  // But if it appears that it now has a symbol already set,
+	  // then do not set a symbol to it again.
+	  //
+	  // Or if it appears that another virtual member function
+	  // from the current ABI Corpus, with the same linkage
+	  // (mangled) name has already been set a symbol, then do not
+	  // set a symbol to this function either.  Otherwise, there
+	  // will be two virtual member functions with the same symbol
+	  // in the class and that leads to spurious hard-to-debug
+	  // change reports later down the road.
+	  if (i->second->get_symbol()
+	      || symbol_already_belongs_to_a_function(sym))
+	    continue;
+
 	  ABG_ASSERT(is_member_function(i->second));
 	  ABG_ASSERT(get_member_function_is_virtual(i->second));
 	  i->second->set_symbol(sym);
@@ -15707,7 +15758,7 @@ build_function_decl(read_context&	ctxt,
 	    fn_sym = ctxt.function_symbol_is_exported(fn_addr);
 	}
 
-      if (fn_sym)
+      if (fn_sym && !ctxt.symbol_already_belongs_to_a_function(fn_sym))
 	{
 	  result->set_symbol(fn_sym);
 	  string linkage_name = result->get_linkage_name();
diff --git a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi
index d697e447..dffdfd3e 100644
--- a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi
+++ b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi
@@ -1348,7 +1348,7 @@
           </function-decl>
         </member-function>
         <member-function access='public' static='yes'>
-          <function-decl name='StringData' mangled-name='_ZN5mongo10StringDataC2EPKc' filepath='src/mongo/base/string_data.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5mongo10StringDataC2EPKc'>
+          <function-decl name='StringData' mangled-name='_ZN5mongo10StringDataC2EPKc' filepath='src/mongo/base/string_data.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-126' is-artificial='yes'/>
             <parameter type-id='type-id-73'/>
             <return type-id='type-id-26'/>
diff --git a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi
index adc9dcdd..acab3bd5 100644
--- a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi
+++ b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi
@@ -6254,7 +6254,7 @@
           </function-decl>
         </member-function>
         <member-function access='public'>
-          <function-decl name='scoped_array' mangled-name='_ZN5boost12scoped_arrayIcEC2EPc' filepath='src/third_party/boost-1.56.0/boost/smart_ptr/scoped_array.hpp' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost12scoped_arrayIcEC2EPc'>
+          <function-decl name='scoped_array' mangled-name='_ZN5boost12scoped_arrayIcEC2EPc' filepath='src/third_party/boost-1.56.0/boost/smart_ptr/scoped_array.hpp' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-314' is-artificial='yes'/>
             <parameter type-id='type-id-42'/>
             <return type-id='type-id-27'/>
@@ -8802,28 +8802,28 @@
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='-1'>
-            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6system12system_errorD0Ev'>
+            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
               <parameter type-id='type-id-329' is-artificial='yes'/>
               <parameter type-id='type-id-15' is-artificial='yes'/>
               <return type-id='type-id-27'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='-1'>
-            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6system12system_errorD0Ev'>
+            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
               <parameter type-id='type-id-329' is-artificial='yes'/>
               <parameter type-id='type-id-15' is-artificial='yes'/>
               <return type-id='type-id-27'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='-1'>
-            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6system12system_errorD0Ev'>
+            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
               <parameter type-id='type-id-329' is-artificial='yes'/>
               <parameter type-id='type-id-15' is-artificial='yes'/>
               <return type-id='type-id-27'/>
             </function-decl>
           </member-function>
           <member-function access='public' destructor='yes' vtable-offset='-1'>
-            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN5boost6system12system_errorD0Ev'>
+            <function-decl name='~system_error' mangled-name='_ZN5boost6system12system_errorD0Ev' filepath='src/third_party/boost-1.56.0/boost/system/system_error.hpp' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
               <parameter type-id='type-id-329' is-artificial='yes'/>
               <parameter type-id='type-id-15' is-artificial='yes'/>
               <return type-id='type-id-27'/>
diff --git a/tests/data/test-read-dwarf/test16-pr18904.so.abi b/tests/data/test-read-dwarf/test16-pr18904.so.abi
index ab5c7e1f..449528e7 100644
--- a/tests/data/test-read-dwarf/test16-pr18904.so.abi
+++ b/tests/data/test-read-dwarf/test16-pr18904.so.abi
@@ -3566,7 +3566,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' destructor='yes'>
-        <function-decl name='~Stream' mangled-name='_ZN6StreamD2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_engine.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN6StreamD2Ev'>
+        <function-decl name='~Stream' mangled-name='_ZN6StreamD2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_engine.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-265' is-artificial='yes'/>
           <parameter type-id='type-id-25' is-artificial='yes'/>
           <return type-id='type-id-149'/>
@@ -3681,7 +3681,7 @@
         </function-decl>
       </member-function>
       <member-function access='private' constructor='yes'>
-        <function-decl name='MemRange' mangled-name='_ZN8MemRangeC2EPKvm' filepath='../../../gcc/liboffloadmic/runtime/offload_engine.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN8MemRangeC2EPKvm'>
+        <function-decl name='MemRange' mangled-name='_ZN8MemRangeC2EPKvm' filepath='../../../gcc/liboffloadmic/runtime/offload_engine.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-274' is-artificial='yes'/>
           <parameter type-id='type-id-151'/>
           <parameter type-id='type-id-56'/>
@@ -5618,7 +5618,7 @@
               </function-decl>
             </member-function>
             <member-function access='public'>
-              <function-decl name='_Rb_tree_impl' mangled-name='_ZNSt8_Rb_treeImSt4pairIKmP6StreamESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEC2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_tree.h' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt8_Rb_treeImSt4pairIKmP6StreamESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEC2Ev'>
+              <function-decl name='_Rb_tree_impl' mangled-name='_ZNSt8_Rb_treeImSt4pairIKmP6StreamESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEC2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_tree.h' line='596' column='1' visibility='default' binding='global' size-in-bits='64'>
                 <parameter type-id='type-id-930' is-artificial='yes'/>
                 <return type-id='type-id-149'/>
               </function-decl>
@@ -6696,7 +6696,7 @@
           </function-decl>
         </member-function>
         <member-function access='public'>
-          <function-decl name='_Rb_tree_const_iterator' mangled-name='_ZNSt23_Rb_tree_const_iteratorISt4pairIKmP6StreamEEC2ERKSt17_Rb_tree_iteratorIS4_E' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_tree.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt23_Rb_tree_const_iteratorISt4pairIKmP6StreamEEC2ERKSt17_Rb_tree_iteratorIS4_E'>
+          <function-decl name='_Rb_tree_const_iterator' mangled-name='_ZNSt23_Rb_tree_const_iteratorISt4pairIKmP6StreamEEC2ERKSt17_Rb_tree_iteratorIS4_E' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_tree.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-942' is-artificial='yes'/>
             <parameter type-id='type-id-603'/>
             <return type-id='type-id-149'/>
@@ -7781,7 +7781,7 @@
               </function-decl>
             </member-function>
             <member-function access='public' constructor='yes'>
-              <function-decl name='_Alloc_node' mangled-name='_ZNSt8_Rb_treeI7PtrDataS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_Alloc_nodeC2ERS6_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_tree.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt8_Rb_treeI7PtrDataS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_Alloc_nodeC2ERS6_'>
+              <function-decl name='_Alloc_node' mangled-name='_ZNSt8_Rb_treeI7PtrDataS0_St9_IdentityIS0_ESt4lessIS0_ESaIS0_EE11_Alloc_nodeC2ERS6_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_tree.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64'>
                 <parameter type-id='type-id-1226' is-artificial='yes'/>
                 <parameter type-id='type-id-917'/>
                 <return type-id='type-id-149'/>
@@ -11063,7 +11063,7 @@
           </function-decl>
         </member-function>
         <member-function access='public'>
-          <function-decl name='pair&lt;std::_Rb_tree_node&lt;PtrData&gt;*&amp;, std::_Rb_tree_node_base*&amp;, 1u&gt;' mangled-name='_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeI7PtrDataERS1_Lb1EEEOT_OT0_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeI7PtrDataERS1_Lb1EEEOT_OT0_'>
+          <function-decl name='pair&lt;std::_Rb_tree_node&lt;PtrData&gt;*&amp;, std::_Rb_tree_node_base*&amp;, 1u&gt;' mangled-name='_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EC2IRPSt13_Rb_tree_nodeI7PtrDataERS1_Lb1EEEOT_OT0_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1071' is-artificial='yes'/>
             <parameter type-id='type-id-1419'/>
             <parameter type-id='type-id-1417'/>
@@ -14631,7 +14631,7 @@
             </function-decl>
           </member-function>
           <member-function access='private' destructor='yes'>
-            <function-decl name='~_List_base' mangled-name='_ZNSt7__cxx1110_List_baseIP9coibufferSaIS2_EED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_list.h' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt7__cxx1110_List_baseIP9coibufferSaIS2_EED2Ev'>
+            <function-decl name='~_List_base' mangled-name='_ZNSt7__cxx1110_List_baseIP9coibufferSaIS2_EED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_list.h' line='441' column='1' visibility='default' binding='global' size-in-bits='64'>
               <parameter type-id='type-id-984' is-artificial='yes'/>
               <parameter type-id='type-id-25' is-artificial='yes'/>
               <return type-id='type-id-149'/>
@@ -15002,7 +15002,7 @@
             </function-decl>
           </member-function>
           <member-function access='private' destructor='yes'>
-            <function-decl name='~_List_base' mangled-name='_ZNSt7__cxx1110_List_baseIP7PtrDataSaIS2_EED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_list.h' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt7__cxx1110_List_baseIP7PtrDataSaIS2_EED2Ev'>
+            <function-decl name='~_List_base' mangled-name='_ZNSt7__cxx1110_List_baseIP7PtrDataSaIS2_EED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_list.h' line='441' column='1' visibility='default' binding='global' size-in-bits='64'>
               <parameter type-id='type-id-974' is-artificial='yes'/>
               <parameter type-id='type-id-25' is-artificial='yes'/>
               <return type-id='type-id-149'/>
@@ -18455,7 +18455,7 @@
           </function-decl>
         </member-function>
         <member-function access='private'>
-          <function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmP6StreamEEEC2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmP6StreamEEEC2Ev'>
+          <function-decl name='new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKmP6StreamEEEC2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-368' is-artificial='yes'/>
             <return type-id='type-id-149'/>
           </function-decl>
@@ -18974,7 +18974,7 @@
           </function-decl>
         </member-function>
         <member-function access='private' destructor='yes'>
-          <function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP9coibufferEED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP9coibufferEED2Ev'>
+          <function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP9coibufferEED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-362' is-artificial='yes'/>
             <parameter type-id='type-id-25' is-artificial='yes'/>
             <return type-id='type-id-149'/>
@@ -19183,7 +19183,7 @@
           </function-decl>
         </member-function>
         <member-function access='private' destructor='yes'>
-          <function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP7PtrDataEED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP7PtrDataEED2Ev'>
+          <function-decl name='~new_allocator' mangled-name='_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIP7PtrDataEED2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/new_allocator.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-358' is-artificial='yes'/>
             <parameter type-id='type-id-25' is-artificial='yes'/>
             <return type-id='type-id-149'/>
@@ -19231,7 +19231,7 @@
           </function-decl>
         </member-function>
         <member-function access='public'>
-          <function-decl name='__aligned_membuf' mangled-name='_ZN9__gnu_cxx16__aligned_membufI7PtrDataEC2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/aligned_buffer.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN9__gnu_cxx16__aligned_membufI7PtrDataEC2Ev'>
+          <function-decl name='__aligned_membuf' mangled-name='_ZN9__gnu_cxx16__aligned_membufI7PtrDataEC2Ev' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/ext/aligned_buffer.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-318' is-artificial='yes'/>
             <return type-id='type-id-149'/>
           </function-decl>
@@ -22663,7 +22663,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -22676,7 +22676,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -22689,7 +22689,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -22702,7 +22702,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -22883,7 +22883,7 @@
           </function-decl>
         </member-function>
         <member-function access='public'>
-          <function-decl name='pair&lt;std::_Rb_tree_iterator&lt;PtrData&gt;, bool, 1u&gt;' mangled-name='_ZNSt4pairISt17_Rb_tree_iteratorI7PtrDataEbEC2IS2_bLb1EEEOT_OT0_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt4pairISt17_Rb_tree_iteratorI7PtrDataEbEC2IS2_bLb1EEEOT_OT0_'>
+          <function-decl name='pair&lt;std::_Rb_tree_iterator&lt;PtrData&gt;, bool, 1u&gt;' mangled-name='_ZNSt4pairISt17_Rb_tree_iteratorI7PtrDataEbEC2IS2_bLb1EEEOT_OT0_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1855' is-artificial='yes'/>
             <parameter type-id='type-id-1489'/>
             <parameter type-id='type-id-206'/>
@@ -24103,7 +24103,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' destructor='yes'>
-        <function-decl name='~mutex_locker_t' mangled-name='_ZN14mutex_locker_tD2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN14mutex_locker_tD2Ev'>
+        <function-decl name='~mutex_locker_t' mangled-name='_ZN14mutex_locker_tD2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1969' is-artificial='yes'/>
           <parameter type-id='type-id-25' is-artificial='yes'/>
           <return type-id='type-id-149'/>
@@ -24117,7 +24117,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' destructor='yes'>
-        <function-decl name='~mutex_locker_t' mangled-name='_ZN14mutex_locker_tD2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN14mutex_locker_tD2Ev'>
+        <function-decl name='~mutex_locker_t' mangled-name='_ZN14mutex_locker_tD2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1969' is-artificial='yes'/>
           <parameter type-id='type-id-25' is-artificial='yes'/>
           <return type-id='type-id-149'/>
@@ -26209,7 +26209,7 @@
           </function-decl>
         </member-function>
         <member-function access='public'>
-          <function-decl name='pair&lt;std::_Rb_tree_iterator&lt;PtrData&gt;, bool, 1u&gt;' mangled-name='_ZNSt4pairISt17_Rb_tree_iteratorI7PtrDataEbEC2IS2_bLb1EEEOT_OT0_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt4pairISt17_Rb_tree_iteratorI7PtrDataEbEC2IS2_bLb1EEEOT_OT0_'>
+          <function-decl name='pair&lt;std::_Rb_tree_iterator&lt;PtrData&gt;, bool, 1u&gt;' mangled-name='_ZNSt4pairISt17_Rb_tree_iteratorI7PtrDataEbEC2IS2_bLb1EEEOT_OT0_' filepath='/export/users/iverbin/gcc_build_host/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_pair.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1855' is-artificial='yes'/>
             <parameter type-id='type-id-1489'/>
             <parameter type-id='type-id-206'/>
@@ -37366,7 +37366,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -37379,7 +37379,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -37392,7 +37392,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
@@ -37405,7 +37405,7 @@
         </function-decl>
       </member-function>
       <member-function access='public' constructor='yes'>
-        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZN7mutex_tC2Ev'>
+        <function-decl name='mutex_t' mangled-name='_ZN7mutex_tC2Ev' filepath='../../../gcc/liboffloadmic/runtime/offload_util.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
           <parameter type-id='type-id-1842' is-artificial='yes'/>
           <return type-id='type-id-149'/>
         </function-decl>
diff --git a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
index 1d5daafd..e6b52d26 100644
--- a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
+++ b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
@@ -26211,7 +26211,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='2'>
-          <function-decl name='do_out' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4'>
+          <function-decl name='do_out' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='425' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1414' is-artificial='yes'/>
             <parameter type-id='type-id-1415'/>
             <parameter type-id='type-id-1416'/>
@@ -26247,7 +26247,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='4'>
-          <function-decl name='do_in' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4'>
+          <function-decl name='do_in' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='436' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1414' is-artificial='yes'/>
             <parameter type-id='type-id-1415'/>
             <parameter type-id='type-id-1421'/>
@@ -26523,6 +26523,13 @@
             <return type-id='type-id-5'/>
           </function-decl>
         </member-function>
+        <member-function access='protected' const='yes' vtable-offset='2'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1007' column='1' visibility='default' binding='global' size-in-bits='64'>
+            <parameter type-id='type-id-1432' is-artificial='yes'/>
+            <parameter type-id='type-id-1427'/>
+            <return type-id='type-id-1427'/>
+          </function-decl>
+        </member-function>
         <member-function access='protected' const='yes' vtable-offset='2'>
           <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/src/c++98/ctype_configure_char.cc' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
@@ -26530,11 +26537,12 @@
             <return type-id='type-id-17'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='2'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
+        <member-function access='protected' const='yes' vtable-offset='3'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1024' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1427'/>
-            <return type-id='type-id-1427'/>
+            <parameter type-id='type-id-1435'/>
+            <parameter type-id='type-id-1436'/>
+            <return type-id='type-id-1436'/>
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
@@ -26545,12 +26553,11 @@
             <return type-id='type-id-4'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4'>
+        <member-function access='protected' const='yes' vtable-offset='4'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1040' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1435'/>
-            <parameter type-id='type-id-1436'/>
-            <return type-id='type-id-1436'/>
+            <parameter type-id='type-id-1427'/>
+            <return type-id='type-id-1427'/>
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='4'>
@@ -26560,11 +26567,12 @@
             <return type-id='type-id-17'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='4'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4'>
+        <member-function access='protected' const='yes' vtable-offset='5'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1057' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1427'/>
-            <return type-id='type-id-1427'/>
+            <parameter type-id='type-id-1435'/>
+            <parameter type-id='type-id-1436'/>
+            <return type-id='type-id-1436'/>
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='5'>
@@ -26575,14 +26583,6 @@
             <return type-id='type-id-4'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='5'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4'>
-            <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1435'/>
-            <parameter type-id='type-id-1436'/>
-            <return type-id='type-id-1436'/>
-          </function-decl>
-        </member-function>
         <member-function access='protected' const='yes' vtable-offset='6'>
           <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIcE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
@@ -26714,7 +26714,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='2'>
-          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEtw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4'>
+          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEtw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1245' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1433'/>
             <parameter type-id='type-id-1438'/>
@@ -26730,7 +26730,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEPKwS2_Pt' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4'>
+          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEPKwS2_Pt' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1264' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1446'/>
             <parameter type-id='type-id-1446'/>
@@ -26748,7 +26748,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='4'>
-          <function-decl name='do_scan_is' mangled-name='_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4'>
+          <function-decl name='do_scan_is' mangled-name='_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1282' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1433'/>
             <parameter type-id='type-id-1446'/>
@@ -26766,7 +26766,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='5'>
-          <function-decl name='do_scan_not' mangled-name='_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4'>
+          <function-decl name='do_scan_not' mangled-name='_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1300' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1433'/>
             <parameter type-id='type-id-1446'/>
@@ -26784,7 +26784,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='6'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1317' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1438'/>
             <return type-id='type-id-1438'/>
@@ -26798,7 +26798,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='7'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1334' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1447'/>
             <parameter type-id='type-id-1446'/>
@@ -26814,7 +26814,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='8'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1350' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1438'/>
             <return type-id='type-id-1438'/>
@@ -26828,7 +26828,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='9'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1367' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1447'/>
             <parameter type-id='type-id-1446'/>
@@ -26844,7 +26844,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='10'>
-          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4'>
+          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1387' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-17'/>
             <return type-id='type-id-1438'/>
@@ -26858,7 +26858,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='11'>
-          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4'>
+          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1409' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-4'/>
             <parameter type-id='type-id-4'/>
@@ -26876,7 +26876,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='12'>
-          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEwc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4'>
+          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEwc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1432' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1438'/>
             <parameter type-id='type-id-17'/>
@@ -26892,7 +26892,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='13'>
-          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4'>
+          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1458' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1446'/>
             <parameter type-id='type-id-1446'/>
@@ -45277,7 +45277,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='2'>
-          <function-decl name='do_out' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_@@GLIBCXX_3.4'>
+          <function-decl name='do_out' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE6do_outERS0_PKwS4_RS4_PcS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='425' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1414' is-artificial='yes'/>
             <parameter type-id='type-id-1415'/>
             <parameter type-id='type-id-1416'/>
@@ -45313,7 +45313,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='4'>
-          <function-decl name='do_in' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_@@GLIBCXX_3.4'>
+          <function-decl name='do_in' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE5do_inERS0_PKcS4_RS4_PwS6_RS6_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='436' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1414' is-artificial='yes'/>
             <parameter type-id='type-id-1415'/>
             <parameter type-id='type-id-1421'/>
@@ -47757,7 +47757,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='2'>
-          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEtw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE5do_isEtw@@GLIBCXX_3.4'>
+          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEtw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1245' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1433'/>
             <parameter type-id='type-id-1438'/>
@@ -47773,7 +47773,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEPKwS2_Pt' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE5do_isEPKwS2_Pt@@GLIBCXX_3.4'>
+          <function-decl name='do_is' mangled-name='_ZNKSt5ctypeIwE5do_isEPKwS2_Pt' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1264' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1446'/>
             <parameter type-id='type-id-1446'/>
@@ -47791,7 +47791,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='4'>
-          <function-decl name='do_scan_is' mangled-name='_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_@@GLIBCXX_3.4'>
+          <function-decl name='do_scan_is' mangled-name='_ZNKSt5ctypeIwE10do_scan_isEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1282' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1433'/>
             <parameter type-id='type-id-1446'/>
@@ -47809,7 +47809,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='5'>
-          <function-decl name='do_scan_not' mangled-name='_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_@@GLIBCXX_3.4'>
+          <function-decl name='do_scan_not' mangled-name='_ZNKSt5ctypeIwE11do_scan_notEtPKwS2_' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1300' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1433'/>
             <parameter type-id='type-id-1446'/>
@@ -47827,7 +47827,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='6'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_toupperEw@@GLIBCXX_3.4'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1317' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1438'/>
             <return type-id='type-id-1438'/>
@@ -47841,7 +47841,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='7'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_toupperEPwPKw@@GLIBCXX_3.4'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIwE10do_toupperEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1334' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1447'/>
             <parameter type-id='type-id-1446'/>
@@ -47857,7 +47857,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='8'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_tolowerEw@@GLIBCXX_3.4'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1350' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1438'/>
             <return type-id='type-id-1438'/>
@@ -47871,7 +47871,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='9'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE10do_tolowerEPwPKw@@GLIBCXX_3.4'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIwE10do_tolowerEPwPKw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1367' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1447'/>
             <parameter type-id='type-id-1446'/>
@@ -47887,7 +47887,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='10'>
-          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE8do_widenEc@@GLIBCXX_3.4'>
+          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1387' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-17'/>
             <return type-id='type-id-1438'/>
@@ -47901,7 +47901,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='11'>
-          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw@@GLIBCXX_3.4'>
+          <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIwE8do_widenEPKcS2_Pw' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1409' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-4'/>
             <parameter type-id='type-id-4'/>
@@ -47919,7 +47919,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='12'>
-          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEwc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE9do_narrowEwc@@GLIBCXX_3.4'>
+          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEwc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1432' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1438'/>
             <parameter type-id='type-id-17'/>
@@ -47935,7 +47935,7 @@
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='13'>
-          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc@@GLIBCXX_3.4'>
+          <function-decl name='do_narrow' mangled-name='_ZNKSt5ctypeIwE9do_narrowEPKwS2_cPc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1458' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1445' is-artificial='yes'/>
             <parameter type-id='type-id-1446'/>
             <parameter type-id='type-id-1446'/>
@@ -49990,6 +49990,13 @@
             <return type-id='type-id-5'/>
           </function-decl>
         </member-function>
+        <member-function access='protected' const='yes' vtable-offset='2'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1007' column='1' visibility='default' binding='global' size-in-bits='64'>
+            <parameter type-id='type-id-1432' is-artificial='yes'/>
+            <parameter type-id='type-id-1427'/>
+            <return type-id='type-id-1427'/>
+          </function-decl>
+        </member-function>
         <member-function access='protected' const='yes' vtable-offset='2'>
           <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/src/c++98/ctype_configure_char.cc' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
@@ -49997,11 +50004,12 @@
             <return type-id='type-id-17'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='2'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEc@@GLIBCXX_3.4'>
+        <member-function access='protected' const='yes' vtable-offset='3'>
+          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1024' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1427'/>
-            <return type-id='type-id-1427'/>
+            <parameter type-id='type-id-1435'/>
+            <parameter type-id='type-id-1436'/>
+            <return type-id='type-id-1436'/>
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
@@ -50012,12 +50020,11 @@
             <return type-id='type-id-4'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_toupper' mangled-name='_ZNKSt5ctypeIcE10do_toupperEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_toupperEPcPKc@@GLIBCXX_3.4'>
+        <member-function access='protected' const='yes' vtable-offset='4'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1040' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1435'/>
-            <parameter type-id='type-id-1436'/>
-            <return type-id='type-id-1436'/>
+            <parameter type-id='type-id-1427'/>
+            <return type-id='type-id-1427'/>
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='4'>
@@ -50027,11 +50034,12 @@
             <return type-id='type-id-17'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='4'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEc@@GLIBCXX_3.4'>
+        <member-function access='protected' const='yes' vtable-offset='5'>
+          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1057' column='1' visibility='default' binding='global' size-in-bits='64'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1427'/>
-            <return type-id='type-id-1427'/>
+            <parameter type-id='type-id-1435'/>
+            <parameter type-id='type-id-1436'/>
+            <return type-id='type-id-1436'/>
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='5'>
@@ -50042,14 +50050,6 @@
             <return type-id='type-id-4'/>
           </function-decl>
         </member-function>
-        <member-function access='protected' const='yes' vtable-offset='5'>
-          <function-decl name='do_tolower' mangled-name='_ZNKSt5ctypeIcE10do_tolowerEPcPKc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE10do_tolowerEPcPKc@@GLIBCXX_3.4'>
-            <parameter type-id='type-id-1432' is-artificial='yes'/>
-            <parameter type-id='type-id-1435'/>
-            <parameter type-id='type-id-1436'/>
-            <return type-id='type-id-1436'/>
-          </function-decl>
-        </member-function>
         <member-function access='protected' const='yes' vtable-offset='6'>
           <function-decl name='do_widen' mangled-name='_ZNKSt5ctypeIcE8do_widenEc' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets.h' line='1077' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt5ctypeIcE8do_widenEc@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1432' is-artificial='yes'/>
-- 
2.29.2



-- 
		Dodji


  parent reply	other threads:[~2020-11-27 17:07 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-27 16:56 [PATCH 0/6] Fix subtle ABI artifact representation issues Dodji Seketeli
2020-11-27 17:03 ` [PATCH 1/6] writer: Emit definitions of declarations when they are present Dodji Seketeli
2020-11-30 13:49   ` Giuliano Procida
2020-11-30 15:56     ` Dodji Seketeli
2020-11-30 18:15       ` Giuliano Procida
2020-12-01  9:51         ` Dodji Seketeli
2020-11-27 17:05 ` [PATCH 2/6] ir: Introduce internal pretty representation for anonymous classes Dodji Seketeli
2020-11-27 17:06 ` [PATCH 3/6] reader: Don't lose anonymous-ness of decl-only classes Dodji Seketeli
2020-11-27 17:07 ` Dodji Seketeli [this message]
2020-11-27 17:08 ` [PATCH 5/6] abidw: make --abidiff report any change against own ABIXML Dodji Seketeli
2020-11-27 17:08 ` [PATCH 6/6] abipkgdiff: make --self-check to fail on " Dodji Seketeli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zh326853.fsf@redhat.com \
    --to=dodji@redhat.com \
    --cc=libabigail@sourceware.org \
    --cc=woodard@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).