[12/16] ir: Avoid forgetting potential seemingly duplicated member functions

Message ID 871qfaf59p.fsf@redhat.com
State New
Headers
Series Fixing various issues found while working on PR30309 |

Commit Message

Dodji Seketeli Sept. 7, 2023, 2:05 p.m. UTC
  Hello,

In some rare cases expressed in DWARF from C++, a member function can
belong to both a declaration-only class (having no data member) in one
translation unit, and to a fully defined class in another translation
unit.  In those cases, the two classes are represented and considered
different.

But then, consider a destructor which mangled name is "D1".  D1 is
represented in both the decl-only class and the fully-defined class.
In the former case, its "this pointer" points to a decl-only class,
while in the later case its "this pointer" points a fully-defined
class.

So, D1 coming from the former case will compare different from the D1
coming from the later case, because of the spurious difference
"decl-only class" versus "fully-defined class".  This is in the
context of a self-comparison.

One way to fix this self-comparison subtle change is to give the
former D1 and the later D1 two different "function ID"s.  Today, the
function ID is just the mangled name, D1.  This patch is defining a
more involved ID which makes the difference between a member function
on a decl-only class and a member function on a fully-defined class.

Note that the only member functions that matter are virtual member
functions because they are the only member functions that are
considered when comparing two classes.

This fixes the self-comparison error found on the binary
gcc-gnat-12.3.1-1.fc37.x86_64/usr/libexec/gcc/x86_64-redhat-linux/12/gnat1
while running the self-comparison command below:

    $ fedabipkgdiff --self-compare -a --from fc37 gcc-gnat

	* src/abg-ir.cc (is_declaration_only_class_or_union_type): Add an
	overload for type_base_sptr.
	(function_decl::get_id): Virtual member functions that are defined
	on decl-only classes have a special ID to avoid confusing them
	with their counterparts defined on defined classes.
	* src/abg-reader.cc (build_function_decl)
	(build_function_decl_if_not_suppressed): Add a new
	add_to_exported_decls parameter to avoid adding the function to
	the set of exported decls to early.  For the function to be
	properly added to the set of exported decls, all its attributes
	must be set, including virtualness.  In some case, those
	attributes are not yet known by the end of the call to
	build_function_decl.  The caller must then set those properties
	and then add the function to the set of exported decls.
	(build_{class,union}_decl): Build the function first, then add its
	missing properties and *then* add it to the set of exported decls.
	(handle_function_decl): Adjust.
	* tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 src/abg-ir.cc                                 | 31 +++++++
 src/abg-reader.cc                             | 42 +++++++---
 .../test22-pr19097-libstdc++.so.6.0.17.so.abi | 82 +++++++++----------
 3 files changed, 102 insertions(+), 53 deletions(-)
  

Patch

diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 2bbb1a49..a1033c75 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -10564,6 +10564,21 @@  is_declaration_only_class_or_union_type(const type_base *t,
   return false;
 }
 
+
+/// Test wheter a type is a declaration-only class.
+///
+/// @param t the type to considier.
+///
+/// @param look_through_decl_only if true, then look through the
+/// decl-only class to see if it actually has a class definition in
+/// the same ABI corpus.
+///
+/// @return true iff @p t is a declaration-only class.
+bool
+is_declaration_only_class_or_union_type(const type_base_sptr& t,
+					bool look_through_decl_only)
+{return is_declaration_only_class_or_union_type(t.get(), look_through_decl_only);}
+
 /// Test wheter a type is a declaration-only class.
 ///
 /// @param t the type to considier.
@@ -21366,6 +21381,19 @@  function_decl::get_id() const
       const environment& env = get_type()->get_environment();
       if (elf_symbol_sptr s = get_symbol())
 	{
+	  string virtual_member_suffix;
+	  if (is_member_function(this))
+	      {
+		method_decl* m = is_method_decl(this);
+		ABG_ASSERT(m);
+		if (get_member_function_is_virtual(m))
+		  {
+		    if (is_declaration_only_class_or_union_type
+			(m->get_type()->get_class_type(),
+			 /*look_through_decl_only=*/true))
+		      virtual_member_suffix += "/o";
+		  }
+	      }
 	  if (s->has_aliases())
 	    // The symbol has several aliases, so let's use a scheme
 	    // that allows all aliased functions to have different
@@ -21374,6 +21402,9 @@  function_decl::get_id() const
 	  else
 	    // Let's use the full symbol name with its version as ID.
 	    priv_->id_ = env.intern(s->get_id_string());
+
+	  if (!virtual_member_suffix.empty())
+	    priv_->id_ = env.intern(priv_->id_ + virtual_member_suffix);
 	}
       else if (!get_linkage_name().empty())
 	priv_->id_= env.intern(get_linkage_name());
diff --git a/src/abg-reader.cc b/src/abg-reader.cc
index 2b902096..993b6266 100644
--- a/src/abg-reader.cc
+++ b/src/abg-reader.cc
@@ -1397,11 +1397,11 @@  build_function_parameter (reader&, const xmlNodePtr);
 
 static function_decl_sptr
 build_function_decl(reader&, const xmlNodePtr,
-		    class_or_union_sptr, bool);
+		    class_or_union_sptr, bool, bool);
 
 static function_decl_sptr
 build_function_decl_if_not_suppressed(reader&, const xmlNodePtr,
-				      class_or_union_sptr, bool);
+				      class_or_union_sptr, bool, bool);
 
 static bool
 function_is_suppressed(const reader& rdr,
@@ -3440,16 +3440,21 @@  build_function_parameter(reader& rdr, const xmlNodePtr node)
 /// shared_ptr<function_decl> that is returned is then really a
 /// shared_ptr<method_decl>.
 ///
-/// @param add_to_current_scope if set to yes, the resulting of
+/// @param add_to_current_scope if set to yes, the result of
 /// this function is added to its current scope.
 ///
+/// @param add_to_exported_decls if set to yes, the resulting of this
+/// function is added to the set of decls exported by the current
+/// corpus being built.
+///
 /// @return a pointer to a newly created function_decl upon successful
 /// completion, a null pointer otherwise.
 static function_decl_sptr
-build_function_decl(reader&	rdr,
+build_function_decl(reader&		rdr,
 		    const xmlNodePtr	node,
 		    class_or_union_sptr as_method_decl,
-		    bool		add_to_current_scope)
+		    bool		add_to_current_scope,
+		    bool		add_to_exported_decls)
 {
   function_decl_sptr nil;
 
@@ -3555,7 +3560,8 @@  build_function_decl(reader&	rdr,
 
   rdr.maybe_canonicalize_type(fn_type, !add_to_current_scope);
 
-  rdr.maybe_add_fn_to_exported_decls(fn_decl.get());
+  if (add_to_exported_decls)
+    rdr.maybe_add_fn_to_exported_decls(fn_decl.get());
 
   return fn_decl;
 }
@@ -3578,6 +3584,10 @@  build_function_decl(reader&	rdr,
 /// @param add_to_current_scope if set to yes, the resulting of
 /// this function is added to its current scope.
 ///
+/// @param add_to_exported_decls if set to yes, the resulting of this
+/// function is added to the set of decls exported by the current
+/// corpus being built.
+///
 /// @return a pointer to a newly created function_decl upon successful
 /// completion.  If the function was suppressed by a suppression
 /// specification then returns nil.
@@ -3585,7 +3595,8 @@  static function_decl_sptr
 build_function_decl_if_not_suppressed(reader&			rdr,
 				      const xmlNodePtr		node,
 				      class_or_union_sptr	as_method_decl,
-				      bool			add_to_current_scope)
+				      bool			add_to_current_scope,
+				      bool			add_to_exported_decls)
 {
   function_decl_sptr fn;
 
@@ -3596,7 +3607,8 @@  build_function_decl_if_not_suppressed(reader&			rdr,
     ;
   else
     fn = build_function_decl(rdr, node, as_method_decl,
-			     add_to_current_scope);
+			     add_to_current_scope,
+			     add_to_exported_decls);
   return fn;
 }
 
@@ -5148,7 +5160,8 @@  build_class_decl(reader&		rdr,
 	    {
 	      if (function_decl_sptr f =
 		  build_function_decl_if_not_suppressed(rdr, p, decl,
-							/*add_to_cur_sc=*/true))
+							/*add_to_cur_sc=*/true,
+							/*add_to_exported_decls=*/false))
 		{
 		  method_decl_sptr m = is_method_decl(f);
 		  ABG_ASSERT(m);
@@ -5161,6 +5174,7 @@  build_class_decl(reader&		rdr,
 		  set_member_function_is_dtor(m, is_dtor);
 		  set_member_function_is_const(m, is_const);
 		  rdr.map_xml_node_to_decl(p, m);
+		  rdr.maybe_add_fn_to_exported_decls(f.get());
 		  break;
 		}
 	    }
@@ -5505,7 +5519,8 @@  build_union_decl(reader& rdr,
 	    {
 	      if (function_decl_sptr f =
 		  build_function_decl_if_not_suppressed(rdr, p, decl,
-							/*add_to_cur_sc=*/true))
+							/*add_to_cur_sc=*/true,
+							/*add_to_exported_decls=*/false))
 		{
 		  method_decl_sptr m = is_method_decl(f);
 		  ABG_ASSERT(m);
@@ -5514,6 +5529,7 @@  build_union_decl(reader& rdr,
 		  set_member_function_is_ctor(m, is_ctor);
 		  set_member_function_is_dtor(m, is_dtor);
 		  set_member_function_is_const(m, is_const);
+		  rdr.maybe_add_fn_to_exported_decls(f.get());
 		  break;
 		}
 	    }
@@ -5626,7 +5642,8 @@  build_function_tdecl(reader& rdr,
 	}
       else if (function_decl_sptr f =
 	       build_function_decl_if_not_suppressed(rdr, n, class_decl_sptr(),
-					 /*add_to_current_scope=*/true))
+						     /*add_to_current_scope=*/true,
+						     /*add_to_exported_decls=*/true))
 	fn_tmpl_decl->set_pattern(f);
     }
 
@@ -6204,7 +6221,8 @@  handle_function_decl(reader&	rdr,
 		     bool		add_to_current_scope)
 {
   return build_function_decl_if_not_suppressed(rdr, node, class_decl_sptr(),
-					       add_to_current_scope);
+					       add_to_current_scope,
+					       /*add_to_exported_decls=*/true);
 }
 
 /// Parse a 'class-decl' xml element.
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 9ff6c6e4..3dfc812a 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
@@ -27187,7 +27187,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'>
+          <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'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <parameter type-id='type-id-1369'/>
             <parameter type-id='type-id-1370'/>
@@ -27210,7 +27210,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'>
+          <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'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <parameter type-id='type-id-1369'/>
             <parameter type-id='type-id-1374'/>
@@ -27223,7 +27223,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='5'>
-          <function-decl name='do_encoding' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='443' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_encoding' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <return type-id='type-id-6'/>
           </function-decl>
@@ -27235,7 +27235,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='7'>
-          <function-decl name='do_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <parameter type-id='type-id-1369'/>
             <parameter type-id='type-id-1374'/>
@@ -27245,7 +27245,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='8'>
-          <function-decl name='do_max_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='453' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_max_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <return type-id='type-id-6'/>
           </function-decl>
@@ -33661,7 +33661,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'>
+          <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'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <parameter type-id='type-id-1369'/>
             <parameter type-id='type-id-1370'/>
@@ -33684,7 +33684,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'>
+          <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'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <parameter type-id='type-id-1369'/>
             <parameter type-id='type-id-1374'/>
@@ -33697,7 +33697,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='5'>
-          <function-decl name='do_encoding' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='443' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_encoding' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE11do_encodingEv@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <return type-id='type-id-6'/>
           </function-decl>
@@ -33709,7 +33709,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='7'>
-          <function-decl name='do_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE9do_lengthERS0_PKcS4_m@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <parameter type-id='type-id-1369'/>
             <parameter type-id='type-id-1374'/>
@@ -33719,7 +33719,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='8'>
-          <function-decl name='do_max_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='453' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_max_length' mangled-name='_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/codecvt.h' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt7codecvtIwc11__mbstate_tE13do_max_lengthEv@@GLIBCXX_3.4'>
             <parameter type-id='type-id-1368' is-artificial='yes'/>
             <return type-id='type-id-6'/>
           </function-decl>
@@ -38839,7 +38839,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2242'/>
             <parameter type-id='type-id-2275'/>
@@ -38847,7 +38847,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2280'/>
             <parameter type-id='type-id-2280'/>
@@ -38856,7 +38856,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2242'/>
             <parameter type-id='type-id-2280'/>
@@ -38865,7 +38865,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2242'/>
             <parameter type-id='type-id-2280'/>
@@ -38874,14 +38874,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2275'/>
             <return type-id='type-id-2275'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2281'/>
             <parameter type-id='type-id-2280'/>
@@ -38889,14 +38889,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2275'/>
             <return type-id='type-id-2275'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2281'/>
             <parameter type-id='type-id-2280'/>
@@ -38904,14 +38904,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-202'/>
             <return type-id='type-id-2275'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-4'/>
             <parameter type-id='type-id-4'/>
@@ -38920,7 +38920,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2275'/>
             <parameter type-id='type-id-202'/>
@@ -38928,7 +38928,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2280'/>
             <parameter type-id='type-id-2280'/>
@@ -40375,14 +40375,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2335' is-artificial='yes'/>
             <parameter type-id='type-id-2336'/>
             <return type-id='type-id-2336'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2335' is-artificial='yes'/>
             <parameter type-id='type-id-2342'/>
             <parameter type-id='type-id-2338'/>
@@ -40390,14 +40390,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2335' is-artificial='yes'/>
             <parameter type-id='type-id-2336'/>
             <return type-id='type-id-2336'/>
           </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'>
+          <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-2335' is-artificial='yes'/>
             <parameter type-id='type-id-2342'/>
             <parameter type-id='type-id-2338'/>
@@ -40520,7 +40520,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2242'/>
             <parameter type-id='type-id-2275'/>
@@ -40528,7 +40528,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2280'/>
             <parameter type-id='type-id-2280'/>
@@ -40537,7 +40537,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2242'/>
             <parameter type-id='type-id-2280'/>
@@ -40546,7 +40546,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2242'/>
             <parameter type-id='type-id-2280'/>
@@ -40555,14 +40555,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2275'/>
             <return type-id='type-id-2275'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2281'/>
             <parameter type-id='type-id-2280'/>
@@ -40570,14 +40570,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2275'/>
             <return type-id='type-id-2275'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2281'/>
             <parameter type-id='type-id-2280'/>
@@ -40585,14 +40585,14 @@ 
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-202'/>
             <return type-id='type-id-2275'/>
           </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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-4'/>
             <parameter type-id='type-id-4'/>
@@ -40601,7 +40601,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2275'/>
             <parameter type-id='type-id-202'/>
@@ -40609,7 +40609,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'>
+          <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'>
             <parameter type-id='type-id-2214' is-artificial='yes'/>
             <parameter type-id='type-id-2280'/>
             <parameter type-id='type-id-2280'/>
@@ -47214,7 +47214,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_get' mangled-name='_ZNKSt8messagesIcE6do_getEiiiRKSs' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets_nonio.h' line='1869' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_get' mangled-name='_ZNKSt8messagesIcE6do_getEiiiRKSs' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets_nonio.h' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt8messagesIcE6do_getEiiiRKSs@@GLIBCXX_3.4'>
             <parameter type-id='type-id-2771' is-artificial='yes'/>
             <parameter type-id='type-id-2772'/>
             <parameter type-id='type-id-6'/>
@@ -50629,7 +50629,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_get' mangled-name='_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets_nonio.h' line='1874' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_get' mangled-name='_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets_nonio.h' line='1874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4'>
             <parameter type-id='type-id-2831' is-artificial='yes'/>
             <parameter type-id='type-id-2772'/>
             <parameter type-id='type-id-6'/>
@@ -59336,7 +59336,7 @@ 
           </function-decl>
         </member-function>
         <member-function access='protected' const='yes' vtable-offset='3'>
-          <function-decl name='do_get' mangled-name='_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets_nonio.h' line='1874' column='1' visibility='default' binding='global' size-in-bits='64'>
+          <function-decl name='do_get' mangled-name='_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE' filepath='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/locale_facets_nonio.h' line='1874' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNKSt8messagesIwE6do_getEiiiRKSbIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4'>
             <parameter type-id='type-id-2831' is-artificial='yes'/>
             <parameter type-id='type-id-2772'/>
             <parameter type-id='type-id-6'/>