This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Really obscure C++ mangling error with -fnew-abi



Chip --

  I fixed this bug with the following patch.  After the patch, this:

  00000000 W _ZSt26__uninitialized_fill_n_auxIPSsjSsET_S1_T0_RKT1_5_BoolILb0EE

is the only output from `nm' containing uninitialized_fill_n_aux,
which is a good sign.  This demangles to:

  std::string* 
  std::__uninitialized_fill_n_aux<std::string*, unsigned, std::string>
    (std::string*, unsigned, const std::string&, _Bool<false>)

which looks right to me.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

2000-07-02  Mark Mitchell  <mark@codesourcery.com>

	* mangle.c (canonicalize_for_substitution): Return the canonical
	variant of a type.

Index: mangle.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/mangle.c,v
retrieving revision 1.11
diff -c -p -r1.11 mangle.c
*** mangle.c	2000/06/30 15:25:33	1.11
--- mangle.c	2000/07/02 18:40:16
*************** canonicalize_for_substitution (node)
*** 274,279 ****
--- 274,281 ----
    /* For a TYPE_DECL, use the type instead.  */
    if (TREE_CODE (node) == TYPE_DECL)
      node = TREE_TYPE (node);
+   if (TYPE_P (node))
+     node = canonical_type_variant (node);
  
    return node;
  }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]