Blame SOURCES/gdb-rhbz1668635-libiberty-demangle_template-memleak.patch

190f2a
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
190f2a
From: Keith Seitz <keiths@redhat.com>
190f2a
Date: Fri, 8 Mar 2019 14:33:02 -0800
190f2a
Subject: gdb-rhbz1668635-libiberty-demangle_template-memleak.patch
190f2a
190f2a
;; Fix 'libiberty: Memory leak in demangle_template function resulting in a denial of service"
190f2a
;; Simon Marchi, RH BZ 1668635
190f2a
190f2a
gdb: Remove support for old mangling schemes
190f2a
190f2a
An upcoming sync with gcc's libiberty [1] will remove support for old
190f2a
mangling schemes (GNU v2, Lucid, ARM, HP and EDG).  It will remove the
190f2a
cplus_demangle_opname function, so we need to get rid of its usages in
190f2a
GDB (it's a GNU v2 specific function).
190f2a
190f2a
I think the changes are mostly relatively obvious, some hacks that were
190f2a
necessary to support overloaded operators with GNU v2 mangling are not
190f2a
needed anymore.
190f2a
190f2a
The change in stabsread.c is perhaps less obvious.  I think we could get
190f2a
rid of more code in that region that is specific to old mangling
190f2a
schemes, but I chose to do only the minimal changes required to remove
190f2a
the cplus_demangle_opname uses.  There is also a detailed comment just
190f2a
above that explaining how GNU v2 and v3 mangled symbols are handled, I
190f2a
decided to leave it as-is, since I wasn't sure which part to remove,
190f2a
change or leave there.
190f2a
190f2a
[1] The commit "Remove support for demangling GCC 2.x era mangling
190f2a
schemes.", specifically.
190f2a
190f2a
gdb/ChangeLog:
190f2a
190f2a
        * gdbtypes.c (check_stub_method_group): Remove handling of old
190f2a
        mangling schemes.
190f2a
        * linespec.c (find_methods): Likewise.
190f2a
        * stabsread.c (read_member_functions): Likewise.
190f2a
        * valops.c (search_struct_method): Likewise.
190f2a
        (value_struct_elt_for_reference): Likewise.
190f2a
        * NEWS: Mention this change.
190f2a
190f2a
gdb/testsuite/ChangeLog:
190f2a
190f2a
        * gdb.cp/demangle.exp (test_gnu_style_demangling): Rename to...
190f2a
        (test_gnuv3_style_demangling): ... this.
190f2a
        (test_lucid_style_demangling): Remove.
190f2a
        (test_arm_style_demangling): Remove.
190f2a
        (test_hp_style_demangling): Remove.
190f2a
        (do_tests): Remove calls to the above.
190f2a
190f2a
gdb/doc/ChangeLog:
190f2a
190f2a
        * gdb.texinfo (Print Settings): Remove mention of specific
190f2a
        demangle-style values, just refer to the in-process help.
190f2a
190f2a
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
190f2a
--- a/gdb/doc/gdb.texinfo
190f2a
+++ b/gdb/doc/gdb.texinfo
190f2a
@@ -10390,31 +10390,10 @@ or demangled form.
190f2a
 @cindex symbol decoding style, C@t{++}
190f2a
 @kindex set demangle-style
190f2a
 @item set demangle-style @var{style}
190f2a
-Choose among several encoding schemes used by different compilers to
190f2a
-represent C@t{++} names.  The choices for @var{style} are currently:
190f2a
-
190f2a
-@table @code
190f2a
-@item auto
190f2a
-Allow @value{GDBN} to choose a decoding style by inspecting your program.
190f2a
-This is the default.
190f2a
-
190f2a
-@item gnu
190f2a
-Decode based on the @sc{gnu} C@t{++} compiler (@code{g++}) encoding algorithm.
190f2a
-
190f2a
-@item hp
190f2a
-Decode based on the HP ANSI C@t{++} (@code{aCC}) encoding algorithm.
190f2a
-
190f2a
-@item lucid
190f2a
-Decode based on the Lucid C@t{++} compiler (@code{lcc}) encoding algorithm.
190f2a
-
190f2a
-@item arm
190f2a
-Decode using the algorithm in the @cite{C@t{++} Annotated Reference Manual}.
190f2a
-@strong{Warning:} this setting alone is not sufficient to allow
190f2a
-debugging @code{cfront}-generated executables.  @value{GDBN} would
190f2a
-require further enhancement to permit that.
190f2a
-
190f2a
-@end table
190f2a
-If you omit @var{style}, you will see a list of possible formats.
190f2a
+Choose among several encoding schemes used by different compilers to represent
190f2a
+C@t{++} names.  If you omit @var{style}, you will see a list of possible
190f2a
+formats.  The default value is @var{auto}, which lets @value{GDBN} choose a
190f2a
+decoding style by inspecting your program.
190f2a
 
190f2a
 @item show demangle-style
190f2a
 Display the encoding style currently in use for decoding C@t{++} symbols.
190f2a
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
190f2a
--- a/gdb/gdbtypes.c
190f2a
+++ b/gdb/gdbtypes.c
190f2a
@@ -2779,37 +2779,11 @@ check_stub_method_group (struct type *type, int method_id)
190f2a
 {
190f2a
   int len = TYPE_FN_FIELDLIST_LENGTH (type, method_id);
190f2a
   struct fn_field *f = TYPE_FN_FIELDLIST1 (type, method_id);
190f2a
-  int j, found_stub = 0;
190f2a
 
190f2a
-  for (j = 0; j < len; j++)
190f2a
-    if (TYPE_FN_FIELD_STUB (f, j))
190f2a
-      {
190f2a
-	found_stub = 1;
190f2a
+  for (int j = 0; j < len; j++)
190f2a
+    {
190f2a
+      if (TYPE_FN_FIELD_STUB (f, j))
190f2a
 	check_stub_method (type, method_id, j);
190f2a
-      }
190f2a
-
190f2a
-  /* GNU v3 methods with incorrect names were corrected when we read
190f2a
-     in type information, because it was cheaper to do it then.  The
190f2a
-     only GNU v2 methods with incorrect method names are operators and
190f2a
-     destructors; destructors were also corrected when we read in type
190f2a
-     information.
190f2a
-
190f2a
-     Therefore the only thing we need to handle here are v2 operator
190f2a
-     names.  */
190f2a
-  if (found_stub && !startswith (TYPE_FN_FIELD_PHYSNAME (f, 0), "_Z"))
190f2a
-    {
190f2a
-      int ret;
190f2a
-      char dem_opname[256];
190f2a
-
190f2a
-      ret = cplus_demangle_opname (TYPE_FN_FIELDLIST_NAME (type, 
190f2a
-							   method_id),
190f2a
-				   dem_opname, DMGL_ANSI);
190f2a
-      if (!ret)
190f2a
-	ret = cplus_demangle_opname (TYPE_FN_FIELDLIST_NAME (type, 
190f2a
-							     method_id),
190f2a
-				     dem_opname, 0);
190f2a
-      if (ret)
190f2a
-	TYPE_FN_FIELDLIST_NAME (type, method_id) = xstrdup (dem_opname);
190f2a
     }
190f2a
 }
190f2a
 
190f2a
diff --git a/gdb/linespec.c b/gdb/linespec.c
190f2a
--- a/gdb/linespec.c
190f2a
+++ b/gdb/linespec.c
190f2a
@@ -1234,17 +1234,6 @@ find_methods (struct type *t, enum language t_lang, const char *name,
190f2a
 	   --method_counter)
190f2a
 	{
190f2a
 	  const char *method_name = TYPE_FN_FIELDLIST_NAME (t, method_counter);
190f2a
-	  char dem_opname[64];
190f2a
-
190f2a
-	  if (startswith (method_name, "__") ||
190f2a
-	      startswith (method_name, "op") ||
190f2a
-	      startswith (method_name, "type"))
190f2a
-	    {
190f2a
-	      if (cplus_demangle_opname (method_name, dem_opname, DMGL_ANSI))
190f2a
-		method_name = dem_opname;
190f2a
-	      else if (cplus_demangle_opname (method_name, dem_opname, 0))
190f2a
-		method_name = dem_opname;
190f2a
-	    }
190f2a
 
190f2a
 	  if (symbol_name_compare (method_name, lookup_name, NULL))
190f2a
 	    {
190f2a
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
190f2a
--- a/gdb/stabsread.c
190f2a
+++ b/gdb/stabsread.c
190f2a
@@ -2553,7 +2553,6 @@ read_member_functions (struct field_info *fip, const char **pp,
190f2a
 	}
190f2a
       else
190f2a
 	{
190f2a
-	  int has_stub = 0;
190f2a
 	  int has_destructor = 0, has_other = 0;
190f2a
 	  int is_v3 = 0;
190f2a
 	  struct next_fnfield *tmp_sublist;
190f2a
@@ -2617,8 +2616,6 @@ read_member_functions (struct field_info *fip, const char **pp,
190f2a
 	  tmp_sublist = sublist;
190f2a
 	  while (tmp_sublist != NULL)
190f2a
 	    {
190f2a
-	      if (tmp_sublist->fn_field.is_stub)
190f2a
-		has_stub = 1;
190f2a
 	      if (tmp_sublist->fn_field.physname[0] == '_'
190f2a
 		  && tmp_sublist->fn_field.physname[1] == 'Z')
190f2a
 		is_v3 = 1;
190f2a
@@ -2705,23 +2702,6 @@ read_member_functions (struct field_info *fip, const char **pp,
190f2a
 			  "~", main_fn_name, (char *)NULL);
190f2a
 	      xfree (main_fn_name);
190f2a
 	    }
190f2a
-	  else if (!has_stub)
190f2a
-	    {
190f2a
-	      char dem_opname[256];
190f2a
-	      int ret;
190f2a
-
190f2a
-	      ret = cplus_demangle_opname (new_fnlist->fn_fieldlist.name,
190f2a
-					      dem_opname, DMGL_ANSI);
190f2a
-	      if (!ret)
190f2a
-		ret = cplus_demangle_opname (new_fnlist->fn_fieldlist.name,
190f2a
-					     dem_opname, 0);
190f2a
-	      if (ret)
190f2a
-		new_fnlist->fn_fieldlist.name
190f2a
-		  = ((const char *)
190f2a
-		     obstack_copy0 (&objfile->objfile_obstack, dem_opname,
190f2a
-				    strlen (dem_opname)));
190f2a
-	      xfree (main_fn_name);
190f2a
-	    }
190f2a
 
190f2a
 	  new_fnlist->fn_fieldlist.fn_fields
190f2a
 	    = OBSTACK_CALLOC (&objfile->objfile_obstack, length, fn_field);
190f2a
diff --git a/gdb/testsuite/gdb.cp/demangle.exp b/gdb/testsuite/gdb.cp/demangle.exp
190f2a
--- a/gdb/testsuite/gdb.cp/demangle.exp
190f2a
+++ b/gdb/testsuite/gdb.cp/demangle.exp
190f2a
@@ -110,419 +110,13 @@ proc test_demangling_exact {test result} {
190f2a
     test_demangling_core gdb_test_exact $test $result
190f2a
 }
190f2a
 
190f2a
-
190f2a
-
190f2a
 #
190f2a
-#  Test gnu style name demangling
190f2a
+#  Test gnu-v3 style name demangling
190f2a
 #
190f2a
 
190f2a
-proc test_gnu_style_demangling {} {
190f2a
+proc test_gnuv3_style_demangling {} {
190f2a
     global gdb_prompt
190f2a
 
190f2a
-    test_demangling "gnu: Abort__FP6EditoriPCc" \
190f2a
-	"Abort\[(\]+Editor \[*\]+, int, (const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: AddAlignment__9ivTSolverUiP12ivInteractorP7ivTGlue" "ivTSolver::AddAlignment(unsigned int, ivInteractor *, ivTGlue *)"
190f2a
-    test_demangling "gnu: Append__15NameChooserViewPCc" \
190f2a
-	"NameChooserView::Append\[(\]+(const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: ArrowheadIntersects__9ArrowLineP9ArrowheadR6BoxObjP7Graphic" "ArrowLine::ArrowheadIntersects(Arrowhead *, BoxObj &, Graphic *)"
190f2a
-    test_demangling_exact "gnu: AtEnd__13ivRubberGroup" "ivRubberGroup::AtEnd(void)"
190f2a
-    test_demangling_exact "gnu: BgFilter__9ivTSolverP12ivInteractor" "ivTSolver::BgFilter(ivInteractor *)"
190f2a
-    test_demangling "gnu: BitPatterntoa__FRC10BitPatternccc" \
190f2a
-	"BitPatterntoa\[(\]+(const BitPattern|BitPattern const) &, char, char, char\[)\]+"
190f2a
-    test_demangling_exact "gnu: Check__6UArrayi" "UArray::Check(int)"
190f2a
-    test_demangling_exact "gnu: CoreConstDecls__8TextCodeR7ostream" "TextCode::CoreConstDecls(ostream &)"
190f2a
-    test_demangling_exact "gnu: Detach__8StateVarP12StateVarView" "StateVar::Detach(StateVarView *)"
190f2a
-    test_demangling_exact "gnu: Done__9ComponentG8Iterator" "Component::Done(Iterator)"
190f2a
-    test_demangling "gnu: DrawDestinationTransformedImage__FP7_XImageiiT0iiUlUiiiUiUlUlP4_XGCRC13ivTransformeriiii" \
190f2a
-	"DrawDestinationTransformedImage\[(\]+_XImage \[*\]+, int, int, _XImage \[*\]+, int, int, unsigned long, unsigned int, int, int, unsigned int, unsigned long, unsigned long, _XGC \[*\]+, (const ivTransformer|ivTransformer const) &, int, int, int, int\[)\]+"
190f2a
-
190f2a
-    test_demangling "gnu: Edit__12StringEditorPCcii" \
190f2a
-	"StringEditor::Edit\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
190f2a
-    test_demangling_exact "gnu: Effect__11RelateManipR7ivEvent" "RelateManip::Effect(ivEvent &)"
190f2a
-    test_demangling "gnu: FilterName__FPCc" \
190f2a
-	"FilterName\[(\]+(const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling "gnu: Filter__6PSTextPCci" \
190f2a
-	"PSText::Filter\[(\]+(const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling "gnu: FindColor__7CatalogPCciii" \
190f2a
-	"Catalog::FindColor\[(\]+(const char|char const) \[*\]+, int, int, int\[)\]+"
190f2a
-    test_demangling_exact "gnu: FindFixed__FRP4CNetP4CNet" "FindFixed(CNet *&, CNet *)"
190f2a
-    test_demangling "gnu: FindFont__7CatalogPCcN21" \
190f2a
-	"Catalog::FindFont\[(\]+(const char|char const) \[*\]+, (const char|char const) \[*\]+, (const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: Fix48_abort__FR8twolongs" "Fix48_abort(twolongs &)"
190f2a
-    test_demangling_exact "gnu: GetBarInfo__15iv2_6_VScrollerP13ivPerspectiveRiT2" "iv2_6_VScroller::GetBarInfo(ivPerspective *, int &, int &)"
190f2a
-    test_demangling_exact "gnu: GetBgColor__C9ivPainter" "ivPainter::GetBgColor(void) const"
190f2a
-
190f2a
-    test_demangling "gnu: Iisdouble__FPC6IntRep" \
190f2a
-	"Iisdouble\[(\]+(const IntRep|IntRep const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: InsertBody__15H_PullrightMenuii" "H_PullrightMenu::InsertBody(int, int)"
190f2a
-    test_demangling_exact "gnu: InsertCharacter__9TextManipc" "TextManip::InsertCharacter(char)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: InsertToplevel__7ivWorldP12ivInteractorT1" "ivWorld::InsertToplevel(ivInteractor *, ivInteractor *)"
190f2a
-    test_demangling_exact "gnu: InsertToplevel__7ivWorldP12ivInteractorT1iiUi" "ivWorld::InsertToplevel(ivInteractor *, ivInteractor *, int, int, unsigned int)"
190f2a
-    test_demangling "gnu: IsADirectory__FPCcR4stat" \
190f2a
-	"IsADirectory\[(\]+(const char|char const) \[*\]+, stat &\[)\]+"
190f2a
-    test_demangling_exact "gnu: IsAGroup__FP11GraphicViewP11GraphicComp" "IsAGroup(GraphicView *, GraphicComp *)"
190f2a
-    test_demangling_exact "gnu: IsA__10ButtonCodeUl" "ButtonCode::IsA(unsigned long)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: ReadName__FR7istreamPc" "ReadName(istream &, char *)"
190f2a
-    test_demangling_exact "gnu: Redraw__13StringBrowseriiii" "StringBrowser::Redraw(int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: Rotate__13ivTransformerf" "ivTransformer::Rotate(float)"
190f2a
-    test_demangling_exact "gnu: Rotated__C13ivTransformerf" "ivTransformer::Rotated(float) const"
190f2a
-    test_demangling_exact "gnu: Round__Ff" "Round(float)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: SetExport__16MemberSharedNameUi" "MemberSharedName::SetExport(unsigned int)"
190f2a
-    test_demangling_exact "gnu: Set__14ivControlState13ControlStatusUi" "ivControlState::Set(ControlStatus, unsigned int)"
190f2a
-    test_demangling_exact "gnu: Set__5DFacePcii" "DFace::Set(char *, int, int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: VConvert__9ivTSolverP12ivInteractorRP8TElementT2" "ivTSolver::VConvert(ivInteractor *, TElement *&, TElement *&)"
190f2a
-    test_demangling_exact "gnu: VConvert__9ivTSolverP7ivTGlueRP8TElement" "ivTSolver::VConvert(ivTGlue *, TElement *&)"
190f2a
-    test_demangling_exact "gnu: VOrder__9ivTSolverUiRP12ivInteractorT2" "ivTSolver::VOrder(unsigned int, ivInteractor *&, ivInteractor *&)"
190f2a
-    test_demangling "gnu: Valid__7CatalogPCcRP4Tool" \
190f2a
-	"Catalog::Valid\[(\]+(const char|char const) \[*\]+, Tool \[*\]+&\[)\]+"
190f2a
-    test_demangling_exact "gnu: _10PageButton\$__both" "PageButton::__both"
190f2a
-    test_demangling_exact "gnu: _3RNG\$singleMantissa" "RNG::singleMantissa"
190f2a
-    test_demangling_exact "gnu: _5IComp\$_release" "IComp::_release"
190f2a
-    test_demangling_exact "gnu: _\$_10BitmapComp" "BitmapComp::~BitmapComp(void)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: _\$_9__io_defs" "__io_defs::~__io_defs(void)"
190f2a
-    test_demangling_exact "gnu: _\$_Q23foo3bar" "foo::bar::~bar(void)"
190f2a
-    test_demangling_exact "gnu: _\$_Q33foo3bar4bell" "foo::bar::bell::~bell(void)"
190f2a
-    test_demangling_exact "gnu: __10ivTelltaleiP7ivGlyph" "ivTelltale::ivTelltale(int, ivGlyph *)"
190f2a
-    test_demangling_exact "gnu: __10ivViewportiP12ivInteractorUi" "ivViewport::ivViewport(int, ivInteractor *, unsigned int)"
190f2a
-    test_demangling_exact "gnu: __10ostrstream" "ostrstream::ostrstream(void)"
190f2a
-    test_demangling_exact "gnu: __10ostrstreamPcii" "ostrstream::ostrstream(char *, int, int)"
190f2a
-    test_demangling "gnu: __11BasicDialogiPCcP13ivButtonStateN22Ui" \
190f2a
-	"BasicDialog::BasicDialog\[(\]+int, (const char|char const) \[*\]+, ivButtonState \[*\]+, (const char|char const) \[*\]+, (const char|char const) \[*\]+, unsigned int\[)\]+"
190f2a
-    test_demangling_exact "gnu: __11BitmapTablei" "BitmapTable::BitmapTable(int)"
190f2a
-    test_demangling_exact "gnu: __12ViewportCodeP12ViewportComp" "ViewportCode::ViewportCode(ViewportComp *)"
190f2a
-    test_demangling "gnu: __12iv2_6_BorderiPCci" \
190f2a
-	"iv2_6_Border::iv2_6_Border\[(\]+int, (const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling_exact "gnu: __12iv2_6_Borderii" "iv2_6_Border::iv2_6_Border(int, int)"
190f2a
-    test_demangling "gnu: __12ivBackgroundiP7ivGlyphPC7ivColor" \
190f2a
-	"ivBackground::ivBackground\[(\]+int, ivGlyph \[*\]+, (const ivColor|ivColor const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: __12ivBreak_Listl" "ivBreak_List::ivBreak_List(long)"
190f2a
-    test_demangling "gnu: __14TextInteractoriPCcUi" \
190f2a
-	"TextInteractor::TextInteractor\[(\]+int, (const char|char const) \[*\]+, unsigned int\[)\]+"
190f2a
-    test_demangling_exact "gnu: __14iv2_6_MenuItemiP12ivInteractor" "iv2_6_MenuItem::iv2_6_MenuItem(int, ivInteractor *)"
190f2a
-    test_demangling "gnu: __14iv2_6_MenuItemiPCcP12ivInteractor" \
190f2a
-	"iv2_6_MenuItem::iv2_6_MenuItem\[(\]+int, (const char|char const) \[*\]+, ivInteractor \[*\]+\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __20DisplayList_IteratorR11DisplayList" "DisplayList_Iterator::DisplayList_Iterator(DisplayList &)"
190f2a
-    test_demangling_exact "gnu: __3fooRT0" "foo::foo(foo &)"
190f2a
-    test_demangling_exact "gnu: __3fooiN31" "foo::foo(int, int, int, int)"
190f2a
-    test_demangling "gnu: __3fooiPCc" \
190f2a
-	"foo::foo\[(\]+int, (const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: __3fooiRT0iT2iT2" "foo::foo(int, foo &, int, foo &, int, foo &)"
190f2a
-    test_demangling "gnu: __6GetOptiPPcPCc" \
190f2a
-	"GetOpt::GetOpt\[(\]+int, char \[*\]+\[*\]+, (const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: __6KeyMapPT0" "KeyMap::KeyMap(KeyMap *)"
190f2a
-    test_demangling "gnu: __7ivWorldPCcRiPPcPC12ivOptionDescPC14ivPropertyData" \
190f2a
-	"ivWorld::ivWorld\[(\]+(const char|char const) \[*\]+, int &, char \[*\]+\[*\]+, (const ivOptionDesc|ivOptionDesc const) \[*\]+, (const ivPropertyData|ivPropertyData const) \[*\]+\[)\]+"
190f2a
-    test_demangling "gnu: __7procbufPCci" \
190f2a
-	"procbuf::procbuf\[(\]+(const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling_exact "gnu: __8ArrowCmdP6EditorUiUi" "ArrowCmd::ArrowCmd(Editor *, unsigned int, unsigned int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __9F_EllipseiiiiP7Graphic" "F_Ellipse::F_Ellipse(int, int, int, int, Graphic *)"
190f2a
-    test_demangling_exact "gnu: __9FrameDataP9FrameCompi" "FrameData::FrameData(FrameComp *, int)"
190f2a
-    test_demangling_exact "gnu: __9HVGraphicP9CanvasVarP7Graphic" "HVGraphic::HVGraphic(CanvasVar *, Graphic *)"
190f2a
-    test_demangling_exact "gnu: __Q23foo3bar" "foo::bar::bar(void)"
190f2a
-    test_demangling_exact "gnu: __Q33foo3bar4bell" "foo::bar::bell::bell(void)"
190f2a
-    test_demangling_exact "gnu: __aa__3fooRT0" "foo::operator&&(foo &)"
190f2a
-    test_demangling_exact "gnu: __aad__3fooRT0" "foo::operator&=(foo &)"
190f2a
-    test_demangling_exact "gnu: __ad__3fooRT0" "foo::operator&(foo &)"
190f2a
-    test_demangling_exact "gnu: __adv__3fooRT0" "foo::operator/=(foo &)"
190f2a
-    test_demangling_exact "gnu: __aer__3fooRT0" "foo::operator^=(foo &)"
190f2a
-    test_demangling_exact "gnu: __als__3fooRT0" "foo::operator<<=(foo &)"
190f2a
-    test_demangling_exact "gnu: __amd__3fooRT0" "foo::operator%=(foo &)"
190f2a
-    test_demangling_exact "gnu: __ami__3fooRT0" "foo::operator-=(foo &)"
190f2a
-    test_demangling_exact "gnu: __aml__3FixRT0" "Fix::operator*=(Fix &)"
190f2a
-    test_demangling_exact "gnu: __aml__5Fix16i" "Fix16::operator*=(int)"
190f2a
-    test_demangling_exact "gnu: __aml__5Fix32RT0" "Fix32::operator*=(Fix32 &)"
190f2a
-    test_demangling_exact "gnu: __aor__3fooRT0" "foo::operator|=(foo &)"
190f2a
-    test_demangling_exact "gnu: __apl__3fooRT0" "foo::operator+=(foo &)"
190f2a
-    test_demangling_exact "gnu: __ars__3fooRT0" "foo::operator>>=(foo &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __as__3fooRT0" "foo::operator=(foo &)"
190f2a
-    test_demangling_exact "gnu: __cl__3fooRT0" "foo::operator()(foo &)"
190f2a
-    test_demangling_exact "gnu: __cl__6Normal" "Normal::operator()(void)"
190f2a
-    test_demangling_exact "gnu: __cl__6Stringii" "String::operator()(int, int)"
190f2a
-    test_demangling_exact "gnu: __cm__3fooRT0" "foo::operator, (foo &)"
190f2a
-    test_demangling_exact "gnu: __co__3foo" "foo::operator~(void)"
190f2a
-    test_demangling_exact "gnu: __dl__3fooPv" "foo::operator delete(void *)"
190f2a
-    test_demangling_exact "gnu: __dv__3fooRT0" "foo::operator/(foo &)"
190f2a
-    test_demangling_exact "gnu: __eq__3fooRT0" "foo::operator==(foo &)"
190f2a
-    test_demangling_exact "gnu: __er__3fooRT0" "foo::operator^(foo &)"
190f2a
-    test_demangling_exact "gnu: __ge__3fooRT0" "foo::operator>=(foo &)"
190f2a
-    test_demangling_exact "gnu: __gt__3fooRT0" "foo::operator>(foo &)"
190f2a
-    test_demangling_exact "gnu: __le__3fooRT0" "foo::operator<=(foo &)"
190f2a
-    test_demangling_exact "gnu: __ls__3fooRT0" "foo::operator<<(foo &)"
190f2a
-    test_demangling_exact "gnu: __ls__FR7ostreamPFR3ios_R3ios" "operator<<(ostream &, ios &(*)(ios &))"
190f2a
-    test_demangling_exact "gnu: __ls__FR7ostreamR3Fix" "operator<<(ostream &, Fix &)"
190f2a
-    test_demangling_exact "gnu: __lt__3fooRT0" "foo::operator<(foo &)"
190f2a
-    test_demangling_exact "gnu: __md__3fooRT0" "foo::operator%(foo &)"
190f2a
-    test_demangling_exact "gnu: __mi__3fooRT0" "foo::operator-(foo &)"
190f2a
-    test_demangling_exact "gnu: __ml__3fooRT0" "foo::operator*(foo &)"
190f2a
-    test_demangling_exact "gnu: __mm__3fooi" "foo::operator--(int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __ne__3fooRT0" "foo::operator!=(foo &)"
190f2a
-    test_demangling "gnu: __ne__FRC7ComplexT0" \
190f2a
-	"operator!=\[(\]+(const Complex|Complex const) &, (const Complex|Complex const) &\[)\]+"
190f2a
-    test_demangling "gnu: __ne__FRC7Complexd" \
190f2a
-	"operator!=\[(\]+(const Complex|Complex const) &, double\[)\]+"
190f2a
-    test_demangling "gnu: __ne__FRC9SubStringRC6String" \
190f2a
-	"operator!=\[(\]+(const SubString|SubString const) &, (const String|String const) &\[)\]+"
190f2a
-    test_demangling_exact "gnu: __nt__3foo" "foo::operator!(void)"
190f2a
-    test_demangling_exact "gnu: __nw__3fooi" "foo::operator new(int)"
190f2a
-    test_demangling_exact "gnu: __oo__3fooRT0" "foo::operator||(foo &)"
190f2a
-    test_demangling_exact "gnu: __opPc__3foo" "foo::operator char *(void)"
190f2a
-    test_demangling_exact "gnu: __opi__3foo" "foo::operator int(void)"
190f2a
-    test_demangling_exact "gnu: __or__3fooRT0" "foo::operator|(foo &)"
190f2a
-    test_demangling_exact "gnu: __pl__3fooRT0" "foo::operator+(foo &)"
190f2a
-    test_demangling_exact "gnu: __pp__3fooi" "foo::operator++(int)"
190f2a
-    test_demangling_exact "gnu: __rf__3foo" "foo::operator->(void)"
190f2a
-    test_demangling_exact "gnu: __rm__3fooRT0" "foo::operator->*(foo &)"
190f2a
-    test_demangling_exact "gnu: __rs__3fooRT0" "foo::operator>>(foo &)"
190f2a
-    test_demangling "gnu: __vc__3fooRT0" "foo::operator\\\[\\\]\\(foo &\\)"
190f2a
-    test_demangling "gnu: _gsub__6StringRC5RegexPCci" \
190f2a
-	"String::_gsub\[(\]+(const Regex|Regex const) &, (const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling_exact "gnu: _new_Fix__FUs" "_new_Fix(unsigned short)"
190f2a
-
190f2a
-    # gcc 2.4.5 (and earlier) style virtual tables.  We want to continue to
190f2a
-    # correctly demangle these even if newer compilers use a different form.
190f2a
-    test_demangling_exact "gnu: _vt.foo" "foo virtual table"
190f2a
-    test_demangling_exact "gnu: _vt.foo.bar" "foo::bar virtual table"
190f2a
-    test_demangling_exact "gnu: _vt\$foo" "foo virtual table"
190f2a
-    test_demangling_exact "gnu: _vt\$foo\$bar" "foo::bar virtual table"
190f2a
-
190f2a
-    test_demangling_exact "gnu: append__7ivGlyphPT0" "ivGlyph::append(ivGlyph *)"
190f2a
-    test_demangling "gnu: arg__FRC7Complex" \
190f2a
-	"arg\[(\]+(const Complex|Complex const) &\[)\]+"
190f2a
-    test_demangling_exact "gnu: clearok__FP7_win_sti" "clearok(_win_st *, int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: complexfunc2__FPFPc_i" "complexfunc2(int (*)(char *))"
190f2a
-    test_demangling_exact "gnu: complexfunc3__FPFPFPl_s_i" "complexfunc3(int (*)(short (*)(long *)))"
190f2a
-    test_demangling_exact "gnu: complexfunc4__FPFPFPc_s_i" "complexfunc4(int (*)(short (*)(char *)))"
190f2a
-    test_demangling_exact "gnu: complexfunc5__FPFPc_PFl_i" "complexfunc5(int (*(*)(char *))(long))"
190f2a
-    test_demangling_exact "gnu: complexfunc6__FPFPi_PFl_i" "complexfunc6(int (*(*)(int *))(long))"
190f2a
-    test_demangling_exact "gnu: complexfunc7__FPFPFPc_i_PFl_i" "complexfunc7(int (*(*)(int (*)(char *)))(long))"
190f2a
-    test_demangling "gnu: contains__C9BitStringRC10BitPattern" \
190f2a
-	"BitString::contains\[(\]+(const BitPattern|BitPattern const) &\[)\]+ const"
190f2a
-    test_demangling "gnu: contains__C9BitStringRC12BitSubStringi" \
190f2a
-	"BitString::contains\[(\]+(const BitSubString|BitSubString const) &, int\[)\]+ const"
190f2a
-    test_demangling "gnu: contains__C9BitStringRT0" \
190f2a
-	"BitString::contains\[(\]+(const BitString|BitString const) &\[)\]+ const"
190f2a
-    test_demangling "gnu: div__FPC6IntRepT0P6IntRep" \
190f2a
-	"div\[(\]+(const IntRep|IntRep const) \[*\]+, (const IntRep|IntRep const) \[*\]+, IntRep \[*\]+\[)\]+"
190f2a
-    test_demangling "gnu: div__FPC6IntReplP6IntRep" \
190f2a
-	"div\[(\]+(const IntRep|IntRep const) \[*\]+, long, IntRep \[*\]+\[)\]+"
190f2a
-    test_demangling "gnu: div__FRC8RationalT0R8Rational" \
190f2a
-	"div\[(\]+(const Rational|Rational const) &, (const Rational|Rational const) &, Rational &\[)\]+"
190f2a
-    test_demangling "gnu: divide__FRC7IntegerT0R7IntegerT2" \
190f2a
-	"divide\[(\]+(const Integer|Integer const) &, (const Integer|Integer const) &, Integer &, Integer &\[)\]+"
190f2a
-    test_demangling "gnu: divide__FRC7IntegerlR7IntegerRl" \
190f2a
-	"divide\[(\]+(const Integer|Integer const) &, long, Integer &, long &\[)\]+"
190f2a
-    test_demangling "gnu: enable__14DocumentViewerPCcUi" \
190f2a
-	"DocumentViewer::enable\[(\]+(const char|char const) \[*\]+, unsigned int\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "gnu: foo__FiN30" "foo(int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: foo__FiR3fooiT1iT1" "foo(int, foo &, int, foo &, int, foo &)"
190f2a
-    test_demangling_exact "gnu: foo___3barl" "bar::foo_(long)"
190f2a
-    test_demangling_exact "gnu: insert__15ivClippingStacklRP8_XRegion" "ivClippingStack::insert(long, _XRegion *&)"
190f2a
-    test_demangling_exact "gnu: insert__16ChooserInfo_ListlR11ChooserInfo" "ChooserInfo_List::insert(long, ChooserInfo &)"
190f2a
-    test_demangling_exact "gnu: insert__17FontFamilyRepListlRP15ivFontFamilyRep" "FontFamilyRepList::insert(long, ivFontFamilyRep *&)"
190f2a
-    test_demangling_exact "gnu: leaveok__FP7_win_stc" "leaveok(_win_st *, char)"
190f2a
-    test_demangling_exact "gnu: left_mover__C7ivMFKitP12ivAdjustableP7ivStyle" "ivMFKit::left_mover(ivAdjustable *, ivStyle *) const"
190f2a
-    test_demangling "gnu: matches__C9BitStringRC10BitPatterni" \
190f2a
-	"BitString::matches\[(\]+(const BitPattern|BitPattern const) &, int\[)\]+ const"
190f2a
-    test_demangling "gnu: matches__C9SubStringRC5Regex" \
190f2a
-	"SubString::matches\[(\]+(const Regex|Regex const) &\[)\]+ const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: overload1arg__FSc" "overload1arg(signed char)"
190f2a
-    test_demangling_exact "gnu: overload1arg__FUc" "overload1arg(unsigned char)"
190f2a
-    test_demangling_exact "gnu: overload1arg__FUi" "overload1arg(unsigned int)"
190f2a
-    test_demangling_exact "gnu: overload1arg__FUl" "overload1arg(unsigned long)"
190f2a
-    test_demangling_exact "gnu: overload1arg__FUs" "overload1arg(unsigned short)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Fc" "overload1arg(char)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Fd" "overload1arg(double)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Ff" "overload1arg(float)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Fi" "overload1arg(int)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Fl" "overload1arg(long)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Fs" "overload1arg(short)"
190f2a
-    test_demangling_exact "gnu: overload1arg__Fv" "overload1arg(void)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fi" "overloadargs(int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fii" "overloadargs(int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiii" "overloadargs(int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiii" "overloadargs(int, int, int, int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiii" "overloadargs(int, int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiiii" "overloadargs(int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiiiii" "overloadargs(int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "gnu: overloadargs__Fiiiiiiiiiii" "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling "gnu: pick__13ivCompositionP8ivCanvasRC12ivAllocationiR5ivHit" \
190f2a
-	"ivComposition::pick\[(\]+ivCanvas \[*\]+, (const ivAllocation|ivAllocation const) &, int, ivHit &\[)\]+"
190f2a
-    test_demangling "gnu: pointer__C11ivHScrollerRC7ivEventRC12ivAllocation" \
190f2a
-	"ivHScroller::pointer\[(\]+(const ivEvent|ivEvent const) &, (const ivAllocation|ivAllocation const) &\[)\]+ const"
190f2a
-    test_demangling_exact "gnu: poke__8ivRasterUlUlffff" "ivRaster::poke(unsigned long, unsigned long, float, float, float, float)"
190f2a
-    test_demangling_exact "gnu: polar__Fdd" "polar(double, double)"
190f2a
-    test_demangling "gnu: read__10osStdInputRPCc" \
190f2a
-	"osStdInput::read\[(\]+(const char|char const) \[*\]+&\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "gnu: scale__13ivTransformerff" "ivTransformer::scale(float, float)"
190f2a
-    test_demangling "gnu: scanw__12CursesWindowPCce" \
190f2a
-	"CursesWindow::scanw\[(\]+(const char|char const) \[*\]+,...\[)\]+"
190f2a
-    test_demangling "gnu: scmp__FPCcT0" \
190f2a
-	"scmp\[(\]+(const char|char const) \[*\]+, (const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: sgetn__7filebufPci" "filebuf::sgetn(char *, int)"
190f2a
-    test_demangling_exact "gnu: shift__FP5_FrepiT0" "shift(_Frep *, int, _Frep *)"
190f2a
-    test_demangling_exact "gnu: test__C6BitSeti" "BitSet::test(int) const"
190f2a
-    test_demangling_exact "gnu: test__C6BitSetii" "BitSet::test(int, int) const"
190f2a
-    test_demangling "gnu: testbit__FRC7Integerl" \
190f2a
-	"testbit\[(\]+(const Integer|Integer const) &, long\[)\]+"
190f2a
-    test_demangling_exact "gnu: text_source__8Documentl" "Document::text_source(long)"
190f2a
-    test_demangling_exact "gnu: variance__6Erlangd" "Erlang::variance(double)"
190f2a
-    test_demangling "gnu: vform__8iostreamPCcPc" \
190f2a
-	"iostream::vform\[(\]+(const char|char const) \[*\]+, char \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: view__14DocumentViewerP8ItemViewP11TabularItem" "DocumentViewer::view(ItemView *, TabularItem *)"
190f2a
-    test_demangling_exact "gnu: xy_extents__11ivExtensionffff" "ivExtension::xy_extents(float, float, float, float)"
190f2a
-    test_demangling_exact "gnu: zero__8osMemoryPvUi" "osMemory::zero(void *, unsigned int)"
190f2a
-    test_demangling_exact "gnu: _2T4\$N" "T4::N"
190f2a
-    test_demangling_exact "gnu: _Q22T42t1\$N" "T4::t1::N"
190f2a
-    test_demangling_exact "gnu: get__2T1" "T1::get(void)"
190f2a
-    test_demangling_exact "gnu: get__Q22T11a" "T1::a::get(void)"
190f2a
-    test_demangling_exact "gnu: get__Q32T11a1b" "T1::a::b::get(void)"
190f2a
-    test_demangling_exact "gnu: get__Q42T11a1b1c" "T1::a::b::c::get(void)"
190f2a
-    test_demangling_exact "gnu: get__Q52T11a1b1c1d" "T1::a::b::c::d::get(void)"
190f2a
-    test_demangling_exact "gnu: put__2T1i" "T1::put(int)"
190f2a
-    test_demangling_exact "gnu: put__Q22T11ai" "T1::a::put(int)"
190f2a
-    test_demangling_exact "gnu: put__Q32T11a1bi" "T1::a::b::put(int)"
190f2a
-    test_demangling_exact "gnu: put__Q42T11a1b1ci" "T1::a::b::c::put(int)"
190f2a
-    test_demangling_exact "gnu: put__Q52T11a1b1c1di" "T1::a::b::c::d::put(int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: bar__3fooPv"       "foo::bar(void *)"
190f2a
-    test_demangling "gnu: bar__3fooPCv" \
190f2a
-	"foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
190f2a
-    test_demangling_exact "gnu: bar__C3fooPv"      "foo::bar(void *) const"
190f2a
-    test_demangling "gnu: bar__C3fooPCv" \
190f2a
-	"foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
190f2a
-    test_demangling_exact "gnu: __eq__3fooRT0"     "foo::operator==(foo &)"
190f2a
-    test_demangling "gnu: __eq__3fooRC3foo" \
190f2a
-	 "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
190f2a
-    test_demangling_exact "gnu: __eq__C3fooR3foo"  "foo::operator==(foo &) const"
190f2a
-    test_demangling "gnu: __eq__C3fooRT0" \
190f2a
-	   "foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: elem__t6vector1Zdi" "vector<double>::elem(int)"
190f2a
-    test_demangling_exact "gnu: elem__t6vector1Zii" "vector<int>::elem(int)"
190f2a
-    test_demangling_exact "gnu: __t6vector1Zdi"     "vector<double>::vector(int)"
190f2a
-    test_demangling_exact "gnu: __t6vector1Zii"     "vector<int>::vector(int)"
190f2a
-    test_demangling_exact "gnu: _\$_t6vector1Zdi"    "vector<double>::~vector(int)"
190f2a
-    test_demangling_exact "gnu: _\$_t6vector1Zii"    "vector<int>::~vector(int)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __nw__t2T11ZcUi" "T1<char>::operator new(unsigned int)"
190f2a
-    test_demangling_exact "gnu: __nw__t2T11Z1tUi" "T1<t>::operator new(unsigned int)"
190f2a
-    test_demangling_exact "gnu: __dl__t2T11ZcPv" "T1<char>::operator delete(void *)"
190f2a
-    test_demangling_exact "gnu: __dl__t2T11Z1tPv" "T1<t>::operator delete(void *)"
190f2a
-    test_demangling_exact "gnu: __t2T11Zci" "T1<char>::T1(int)"
190f2a
-    test_demangling_exact "gnu: __t2T11Zc" "T1<char>::T1(void)"
190f2a
-    test_demangling_exact "gnu: __t2T11Z1ti" "T1<t>::T1(int)"
190f2a
-    test_demangling_exact "gnu: __t2T11Z1t" "T1<t>::T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3Pix" \
190f2a
-	"List<VHDLEntity>::Pix::Pix(void)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3PixPQ2t4List1Z10VHDLEntity7element" \
190f2a
-	"List<VHDLEntity>::Pix::Pix(List<VHDLEntity>::element *)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity3PixRCQ2t4List1Z10VHDLEntity3Pix" \
190f2a
-	"List<VHDLEntity>::Pix::Pix(List<VHDLEntity>::Pix const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity7elementRC10VHDLEntityPT0" \
190f2a
-	"List<VHDLEntity>::element::element(VHDLEntity const &, List<VHDLEntity>::element *)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __Q2t4List1Z10VHDLEntity7elementRCQ2t4List1Z10VHDLEntity7element" \
190f2a
-	"List<VHDLEntity>::element::element(List<VHDLEntity>::element const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __cl__C11VHDLLibraryGt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
190f2a
-	"VHDLLibrary::operator()(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __cl__Ct4List1Z10VHDLEntityRCQ2t4List1Z10VHDLEntity3Pix" \
190f2a
-	"List<VHDLEntity>::operator()(List<VHDLEntity>::Pix const &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __ne__FPvRCQ2t4List1Z10VHDLEntity3Pix" \
190f2a
-	"operator!=(void *, List<VHDLEntity>::Pix const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __ne__FPvRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
190f2a
-	"operator!=(void *, PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t4List1Z10VHDLEntityRCt4List1Z10VHDLEntity" \
190f2a
-	"List<VHDLEntity>::List(List<VHDLEntity> const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
190f2a
-	"PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(void)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityP14VHDLLibraryRepGQ2t4List1Z10VHDLEntity3Pix" \
190f2a
-	"PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(VHDLLibraryRep *, List<VHDLEntity>::Pix)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntityRCt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
190f2a
-	"PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >::PixX(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: nextE__C11VHDLLibraryRt4PixX3Z11VHDLLibraryZ14VHDLLibraryRepZt4List1Z10VHDLEntity" \
190f2a
-	"VHDLLibrary::nextE(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> > &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: next__Ct4List1Z10VHDLEntityRQ2t4List1Z10VHDLEntity3Pix" \
190f2a
-	"List<VHDLEntity>::next(List<VHDLEntity>::Pix &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: _GLOBAL_\$D\$set" "global destructors keyed to set"
190f2a
-
190f2a
-    test_demangling_exact "gnu: _GLOBAL_\$I\$set" "global constructors keyed to set"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __as__t5ListS1ZUiRCt5ListS1ZUi" \
190f2a
-	"ListS<unsigned int>::operator=(ListS<unsigned int> const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __cl__Ct5ListS1ZUiRCQ2t5ListS1ZUi3Vix" \
190f2a
-	"ListS<unsigned int>::operator()(ListS<unsigned int>::Vix const &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __cl__Ct5SetLS1ZUiRCQ2t5SetLS1ZUi3Vix" \
190f2a
-	"SetLS<unsigned int>::operator()(SetLS<unsigned int>::Vix const &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t10ListS_link1ZUiRCUiPT0" \
190f2a
-	"ListS_link<unsigned int>::ListS_link(unsigned int const &, ListS_link<unsigned int> *)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t10ListS_link1ZUiRCt10ListS_link1ZUi" \
190f2a
-	"ListS_link<unsigned int>::ListS_link(ListS_link<unsigned int> const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __t5ListS1ZUiRCt5ListS1ZUi" \
190f2a
-	"ListS<unsigned int>::ListS(ListS<unsigned int> const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: next__Ct5ListS1ZUiRQ2t5ListS1ZUi3Vix" \
190f2a
-	"ListS<unsigned int>::next(ListS<unsigned int>::Vix &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __ne__FPvRCQ2t5SetLS1ZUi3Vix" \
190f2a
-	"operator!=(void *, SetLS<unsigned int>::Vix const &)"
190f2a
-    test_demangling_exact "gnu: __t8ListElem1Z5LabelRt4List1Z5Label" \
190f2a
-	"ListElem<Label>::ListElem(List<Label> &)"
190f2a
-    test_demangling_exact "gnu: __t8BDDHookV1ZPcRCPc" \
190f2a
-	"BDDHookV<char *>::BDDHookV(char *const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: _vt\$t8BDDHookV1ZPc" "BDDHookV<char *> virtual table"
190f2a
-
190f2a
-    test_demangling_exact "gnu: __ne__FPvRCQ211BDDFunction4VixB" \
190f2a
-	"operator!=(void *, BDDFunction::VixB const &)"
190f2a
-    test_demangling_exact "gnu: __eq__FPvRCQ211BDDFunction4VixB" \
190f2a
-	"operator==(void *, BDDFunction::VixB const &)"
190f2a
-
190f2a
-    test_demangling_exact "gnu: relativeId__CQ36T_phi210T_preserve8FPC_nextRCQ26T_phi210T_preserveRC10Parameters" \
190f2a
-	 "T_phi2::T_preserve::FPC_next::relativeId(T_phi2::T_preserve const &, Parameters const &) const"
190f2a
-
190f2a
-    test_demangling_exact "gnu: _Utf390_1__1_9223372036854775807__9223372036854775" \
190f2a
-	    "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
190f2a
-    test_demangling_exact "gnu: foo__I40" "foo(int64_t)"
190f2a
-    test_demangling_exact "gnu: foo__I_200_" "foo(int512_t)"
190f2a
-    test_demangling_exact "gnu: foo__I_200" "Can't demangle \"foo__I_200\""
190f2a
-
190f2a
     # Rvalue reference tests
190f2a
     test_demangling_exact "gnu-v3: _ZN9ArrowLine19ArrowheadIntersectsEP9ArrowheadO6BoxObjP7Graphic" "ArrowLine::ArrowheadIntersects(Arrowhead*, BoxObj&&, Graphic*)"
190f2a
     test_demangling "gnu-v3: _Z13BitPatterntoaOK10BitPatternccc" \
190f2a
@@ -560,1012 +154,8 @@ proc test_gnu_style_demangling {} {
190f2a
 	"VHDLLibrary::nextE(PixX<VHDLLibrary, VHDLLibraryRep, List<VHDLEntity> >&&) const"
190f2a
     test_demangling_exact "gnu-v3: _ZNK4ListI10VHDLEntityE4nextEONS1_3PixE" \
190f2a
 	"List<VHDLEntity>::next(List<VHDLEntity>::Pix&&) const"
190f2a
-
190f2a
-    ## Buffer overrun.  Should make GDB crash.  Woo hoo!
190f2a
-    test_demangling_exact "gnu: foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000" "Can't demangle \"foo__I_4000000000000000000000000000000000000000000000000000000000000000000000000\""
190f2a
-
190f2a
-    ## 1999-04-19: "Fix from Dale Hawkins".  Shouldn't segfault.
190f2a
-    # Accept even a dubious demangling; the string is ambiguous.
190f2a
-
190f2a
-    gdb_test_multiple "demangle __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator" "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator" {
190f2a
-	-re "virtual function thunk \\(delta:-64\\) for CosNaming::_proxy_NamingContext::_0RL__list\\(unsigned long, _CORBA_Unbounded_Sequence<CosNaming::Binding> \\*\\&, CosNaming::BindingIterator \\*\\&\\)\r\n$gdb_prompt $" {
190f2a
-	    pass "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator"
190f2a
-	}
190f2a
-	-re ".*Can't demangle \"__thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator\"\r\n$gdb_prompt $" {
190f2a
-	    pass "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator"
190f2a
-	}
190f2a
-    }
190f2a
-}
190f2a
-
190f2a
-#
190f2a
-#  Test lucid style name demangling
190f2a
-#
190f2a
-
190f2a
-proc test_lucid_style_demangling {} {
190f2a
-    test_demangling_exact "lucid: WS__FR7istream" "WS(istream &)"
190f2a
-    test_demangling_exact "lucid: __aa__3fooFR3foo" "foo::operator&&(foo &)"
190f2a
-    test_demangling_exact "lucid: __aad__3fooFR3foo" "foo::operator&=(foo &)"
190f2a
-    test_demangling_exact "lucid: __ad__3fooFR3foo" "foo::operator&(foo &)"
190f2a
-    test_demangling_exact "lucid: __adv__3fooFR3foo" "foo::operator/=(foo &)"
190f2a
-    test_demangling_exact "lucid: __adv__7complexF7complex" "complex::operator/=(complex)"
190f2a
-    test_demangling_exact "lucid: __aer__3fooFR3foo" "foo::operator^=(foo &)"
190f2a
-    test_demangling_exact "lucid: __als__3fooFR3foo" "foo::operator<<=(foo &)"
190f2a
-    test_demangling_exact "lucid: __amd__3fooFR3foo" "foo::operator%=(foo &)"
190f2a
-    test_demangling_exact "lucid: __ami__3fooFR3foo" "foo::operator-=(foo &)"
190f2a
-    test_demangling_exact "lucid: __amu__3fooFR3foo" "foo::operator*=(foo &)"
190f2a
-    test_demangling_exact "lucid: __amu__7complexF7complex" "complex::operator*=(complex)"
190f2a
-    test_demangling_exact "lucid: __aor__3fooFR3foo" "foo::operator|=(foo &)"
190f2a
-    test_demangling_exact "lucid: __apl__3fooFR3foo" "foo::operator+=(foo &)"
190f2a
-    test_demangling_exact "lucid: __ars__3fooFR3foo" "foo::operator>>=(foo &)"
190f2a
-    test_demangling_exact "lucid: __as__18istream_withassignFP9streambuf" "istream_withassign::operator=(streambuf *)"
190f2a
-    test_demangling_exact "lucid: __as__18istream_withassignFR7istream" "istream_withassign::operator=(istream &)"
190f2a
-    test_demangling_exact "lucid: __as__3fooFR3foo" "foo::operator=(foo &)"
190f2a
-    test_demangling_exact "lucid: __as__3iosFR3ios" "ios::operator=(ios &)"
190f2a
-    test_demangling_exact "lucid: __cl__3fooFR3foo" "foo::operator()(foo &)"
190f2a
-    test_demangling_exact "lucid: __cm__3fooFR3foo" "foo::operator, (foo &)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: __co__3fooFv" "foo::operator~(void)"
190f2a
-    test_demangling_exact "lucid: __ct__10istrstreamFPc" "istrstream::istrstream(char *)"
190f2a
-    test_demangling_exact "lucid: __ct__10istrstreamFPci" "istrstream::istrstream(char *, int)"
190f2a
-    test_demangling_exact "lucid: __ct__10ostrstreamFPciT2" "ostrstream::ostrstream(char *, int, int)"
190f2a
-    test_demangling_exact "lucid: __ct__10ostrstreamFv" "ostrstream::ostrstream(void)"
190f2a
-    test_demangling_exact "lucid: __ct__10smanip_intFPFR3iosi_R3iosi" "smanip_int::smanip_int(ios &(*)(ios &, int), int)"
190f2a
-    test_demangling "lucid: __ct__11c_exceptionFPcRC7complexT2" "c_exception::c_exception\[(\]+char \[*\]+, (const complex|complex const) &, (const complex|complex const) &\[)\]+"
190f2a
-    test_demangling "lucid: __ct__11fstreambaseFPCciT2" "fstreambase::fstreambase\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
190f2a
-    test_demangling_exact "lucid: __ct__11fstreambaseFi" "fstreambase::fstreambase(int)"
190f2a
-    test_demangling_exact "lucid: __ct__11fstreambaseFiPcT1" "fstreambase::fstreambase(int, char *, int)"
190f2a
-    test_demangling_exact "lucid: __ct__11fstreambaseFv" "fstreambase::fstreambase(void)"
190f2a
-    test_demangling_exact "lucid: __ct__11smanip_longFPFR3iosl_R3iosl" "smanip_long::smanip_long(ios &(*)(ios &, long), long)"
190f2a
-    test_demangling_exact "lucid: __ct__11stdiostreamFP4FILE" "stdiostream::stdiostream(FILE *)"
190f2a
-    test_demangling_exact "lucid: __ct__12strstreambufFPFl_PvPFPv_v" "strstreambuf::strstreambuf(void *(*)(long), void (*)(void *))"
190f2a
-    test_demangling_exact "lucid: __ct__12strstreambufFPUciT1" "strstreambuf::strstreambuf(unsigned char *, int, unsigned char *)"
190f2a
-    test_demangling_exact "lucid: __ct__12strstreambufFPciT1" "strstreambuf::strstreambuf(char *, int, char *)"
190f2a
-    test_demangling_exact "lucid: __ct__12strstreambufFi" "strstreambuf::strstreambuf(int)"
190f2a
-    test_demangling_exact "lucid: __ct__12strstreambufFv" "strstreambuf::strstreambuf(void)"
190f2a
-    test_demangling_exact "lucid: __ct__13strstreambaseFPciT1" "strstreambase::strstreambase(char *, int, char *)"
190f2a
-    test_demangling_exact "lucid: __ct__3fooFR3foo" "foo::foo(foo &)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: __ct__3fooFi" "foo::foo(int)"
190f2a
-    test_demangling_exact "lucid: __ct__3fooFiN31" "foo::foo(int, int, int, int)"
190f2a
-    test_demangling "lucid: __ct__3fooFiPCc" \
190f2a
-	"foo::foo\[(\]+int, (const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "lucid: __ct__3fooFiR3fooT1T2T1T2" "foo::foo(int, foo &, int, foo &, int, foo &)"
190f2a
-    test_demangling_exact "lucid: __ct__3iosFP9streambuf" "ios::ios(streambuf *)"
190f2a
-    test_demangling_exact "lucid: __ct__7filebufFiPcT1" "filebuf::filebuf(int, char *, int)"
190f2a
-    test_demangling "lucid: __ct__7fstreamFPCciT2" \
190f2a
-	"fstream::fstream\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
190f2a
-    test_demangling_exact "lucid: __ct__7fstreamFiPcT1" "fstream::fstream(int, char *, int)"
190f2a
-    test_demangling_exact "lucid: __ct__7istreamFP9streambuf" "istream::istream(streambuf *)"
190f2a
-    test_demangling_exact "lucid: __ct__7istreamFP9streambufiP7ostream" "istream::istream(streambuf *, int, ostream *)"
190f2a
-    test_demangling_exact "lucid: __ct__7istreamFiPcT1" "istream::istream(int, char *, int)"
190f2a
-    test_demangling_exact "lucid: __ct__7istreamFiT1P7ostream" "istream::istream(int, int, ostream *)"
190f2a
-    test_demangling_exact "lucid: __ct__7ostreamFP9streambuf" "ostream::ostream(streambuf *)"
190f2a
-    test_demangling_exact "lucid: __ct__7ostreamFiPc" "ostream::ostream(int, char *)"
190f2a
-    test_demangling "lucid: __ct__8ifstreamFPCciT2" \
190f2a
-	"ifstream::ifstream\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
190f2a
-    test_demangling_exact "lucid: __ct__8ifstreamFiPcT1" "ifstream::ifstream(int, char *, int)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: __ct__Q23foo3barFv" "foo::bar::bar(void)"
190f2a
-    test_demangling_exact "lucid: __ct__Q33foo3bar4bellFv" "foo::bar::bell::bell(void)"
190f2a
-    test_demangling_exact "lucid: __dl__3fooSFPv" "foo::operator delete(void *) static"
190f2a
-    test_demangling_exact "lucid: __dl__FPv" "operator delete(void *)"
190f2a
-    test_demangling_exact "lucid: __dt__10istrstreamFv" "istrstream::~istrstream(void)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: __dt__Q23foo3barFv" "foo::bar::~bar(void)"
190f2a
-    test_demangling_exact "lucid: __dt__Q33foo3bar4bellFv" "foo::bar::bell::~bell(void)"
190f2a
-    test_demangling_exact "lucid: __dv__3fooFR3foo" "foo::operator/(foo &)"
190f2a
-    test_demangling_exact "lucid: __dv__F7complexT1" "operator/(complex, complex)"
190f2a
-    test_demangling_exact "lucid: __eq__3fooFR3foo" "foo::operator==(foo &)"
190f2a
-    test_demangling_exact "lucid: __er__3fooFR3foo" "foo::operator^(foo &)"
190f2a
-    test_demangling_exact "lucid: __ge__3fooFR3foo" "foo::operator>=(foo &)"
190f2a
-    test_demangling_exact "lucid: __gt__3fooFR3foo" "foo::operator>(foo &)"
190f2a
-    test_demangling_exact "lucid: __le__3fooFR3foo" "foo::operator<=(foo &)"
190f2a
-    test_demangling_exact "lucid: __ls__3fooFR3foo" "foo::operator<<(foo &)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFP9streambuf" "ostream::operator<<(streambuf *)"
190f2a
-
190f2a
-    test_demangling "lucid: __ls__7ostreamFPCc" \
190f2a
-	"ostream::operator<<\[(\]+(const char|char const) \[*\]+\[)\]+"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFPFR3ios_R3ios" "ostream::operator<<(ios &(*)(ios &))"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFPv" "ostream::operator<<(void *)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFUi" "ostream::operator<<(unsigned int)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFUl" "ostream::operator<<(unsigned long)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFd" "ostream::operator<<(double)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFf" "ostream::operator<<(float)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFi" "ostream::operator<<(int)"
190f2a
-    test_demangling_exact "lucid: __ls__7ostreamFl" "ostream::operator<<(long)"
190f2a
-    test_demangling_exact "lucid: __ls__FR7ostream7complex" "operator<<(ostream &, complex)"
190f2a
-    test_demangling_exact "lucid: __lt__3fooFR3foo" "foo::operator<(foo &)"
190f2a
-    test_demangling_exact "lucid: __md__3fooFR3foo" "foo::operator%(foo &)"
190f2a
-    test_demangling_exact "lucid: __mi__3fooFR3foo" "foo::operator-(foo &)"
190f2a
-    test_demangling_exact "lucid: __ml__3fooFR3foo" "foo::operator*(foo &)"
190f2a
-    test_demangling_exact "lucid: __ml__F7complexT1" "operator*(complex, complex)"
190f2a
-    test_demangling_exact "lucid: __mm__3fooFi" "foo::operator--(int)"
190f2a
-    test_demangling_exact "lucid: __ne__3fooFR3foo" "foo::operator!=(foo &)"
190f2a
-    test_demangling_exact "lucid: __nt__3fooFv" "foo::operator!(void)"
190f2a
-    test_demangling_exact "lucid: __nw__3fooSFi" "foo::operator new(int) static"
190f2a
-    test_demangling_exact "lucid: __nw__FUi" "operator new(unsigned int)"
190f2a
-    test_demangling_exact "lucid: __nw__FUiPv" "operator new(unsigned int, void *)"
190f2a
-    test_demangling_exact "lucid: __oo__3fooFR3foo" "foo::operator||(foo &)"
190f2a
-    test_demangling_exact "lucid: __opPc__3fooFv" "foo::operator char *(void)"
190f2a
-    test_demangling_exact "lucid: __opi__3fooFv" "foo::operator int(void)"
190f2a
-    test_demangling_exact "lucid: __or__3fooFR3foo" "foo::operator|(foo &)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: __pl__3fooFR3foo" "foo::operator+(foo &)"
190f2a
-    test_demangling_exact "lucid: __pp__3fooFi" "foo::operator++(int)"
190f2a
-    test_demangling_exact "lucid: __pt__3fooFv" "foo::operator->(void)"
190f2a
-    test_demangling_exact "lucid: __rm__3fooFR3foo" "foo::operator->*(foo &)"
190f2a
-    test_demangling_exact "lucid: __rs__3fooFR3foo" "foo::operator>>(foo &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFP9streambuf" "istream::operator>>(streambuf *)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFPFR3ios_R3ios" "istream::operator>>(ios &(*)(ios &))"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFPFR7istream_R7istream" "istream::operator>>(istream &(*)(istream &))"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFPUc" "istream::operator>>(unsigned char *)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFPc" "istream::operator>>(char *)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRUi" "istream::operator>>(unsigned int &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRUl" "istream::operator>>(unsigned long &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRUs" "istream::operator>>(unsigned short &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRd" "istream::operator>>(double &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRf" "istream::operator>>(float &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRi" "istream::operator>>(int &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRl" "istream::operator>>(long &)"
190f2a
-    test_demangling_exact "lucid: __rs__7istreamFRs" "istream::operator>>(short &)"
190f2a
-    test_demangling_exact "lucid: __rs__FR7istreamR7complex" "operator>>(istream &, complex &)"
190f2a
-    test_demangling "lucid: __vc__3fooFR3foo" "foo::operator\\\[\\\]\\(foo &\\)"
190f2a
-    test_demangling_exact "lucid: __vtbl__10istrstream" "istrstream virtual table"
190f2a
-    test_demangling_exact "lucid: __vtbl__17ostream__iostream__19iostream_withassign" "iostream_withassign::ostream__iostream virtual table"
190f2a
-
190f2a
-    test_demangling_exact "lucid: __vtbl__3ios" "ios virtual table"
190f2a
-    test_demangling_exact "lucid: __vtbl__3ios__13strstreambase" "strstreambase::ios virtual table"
190f2a
-
190f2a
-    # GDB 930414 demangles this as t_cc_main_ (obviously wrong).
190f2a
-    # GDB 930701 gets into an infinite loop.
190f2a
-    # GDB 930727 says "Can't demangle".
190f2a
-    # What is the correct demangling?  FIXME.
190f2a
-
190f2a
-    # NOTE: carlton/2003-01-17: No, don't FIXME, just obsolete lucid.
190f2a
-    # I'm KFAILing this rather than deleting it for form's sake.
190f2a
-    setup_kfail "gdb/945" "*-*-*"
190f2a
-    test_demangling_exact "lucid: __vtbl__3foo__vt_cc_main_" ""
190f2a
-
190f2a
-    test_demangling_exact "lucid: abs__F7complex" "abs(complex)"
190f2a
-    test_demangling_exact "lucid: allocate__9streambufFv" "streambuf::allocate(void)"
190f2a
-    test_demangling_exact "lucid: attach__11fstreambaseFi" "fstreambase::attach(int)"
190f2a
-    test_demangling_exact "lucid: bitalloc__3iosSFv" "ios::bitalloc(void) static"
190f2a
-    test_demangling_exact "lucid: chr__FiT1" "chr(int, int)"
190f2a
-    test_demangling_exact "lucid: complex_error__FR11c_exception" "complex_error(c_exception &)"
190f2a
-    test_demangling_exact "lucid: complexfunc2__FPFPc_i" "complexfunc2(int (*)(char *))"
190f2a
-    test_demangling_exact "lucid: complexfunc3__FPFPFPl_s_i" "complexfunc3(int (*)(short (*)(long *)))"
190f2a
-
190f2a
-    test_demangling_exact "lucid: complexfunc4__FPFPFPc_s_i" "complexfunc4(int (*)(short (*)(char *)))"
190f2a
-    test_demangling_exact "lucid: complexfunc5__FPFPc_PFl_i" "complexfunc5(int (*(*)(char *))(long))"
190f2a
-    test_demangling_exact "lucid: complexfunc6__FPFPi_PFl_i" "complexfunc6(int (*(*)(int *))(long))"
190f2a
-    test_demangling_exact "lucid: complexfunc7__FPFPFPc_i_PFl_i" "complexfunc7(int (*(*)(int (*)(char *)))(long))"
190f2a
-    test_demangling_exact "lucid: complicated_put__7ostreamFc" "ostream::complicated_put(char)"
190f2a
-    test_demangling_exact "lucid: conv10__FlPc" "conv10(long, char *)"
190f2a
-    test_demangling_exact "lucid: conv16__FUlPc" "conv16(unsigned long, char *)"
190f2a
-    test_demangling_exact "lucid: dec__FR3ios" "dec(ios &)"
190f2a
-    test_demangling_exact "lucid: dec__Fli" "dec(long, int)"
190f2a
-    test_demangling_exact "lucid: dofield__FP7ostreamPciT2T3" "dofield(ostream *, char *, int, char *, int)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: flags__3iosFl" "ios::flags(long)"
190f2a
-    test_demangling_exact "lucid: flags__3iosFv" "ios::flags(void)"
190f2a
-    test_demangling_exact "lucid: foo__FiN31" "foo(int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: foo__FiR3fooT1T2T1T2" "foo(int, foo &, int, foo &, int, foo &)"
190f2a
-    test_demangling_exact "lucid: foo___3barFl" "bar::foo_(long)"
190f2a
-    test_demangling "lucid: form__FPCce" "form\[(\]+(const char|char const) \[*\]+,...\[)\]+"
190f2a
-    test_demangling_exact "lucid: get__7istreamFPcic" "istream::get(char *, int, char)"
190f2a
-    test_demangling_exact "lucid: get__7istreamFR9streambufc" "istream::get(streambuf &, char)"
190f2a
-    test_demangling_exact "lucid: get_complicated__7istreamFRUc" "istream::get_complicated(unsigned char &)"
190f2a
-    test_demangling_exact "lucid: get_complicated__7istreamFRc" "istream::get_complicated(char &)"
190f2a
-    test_demangling_exact "lucid: getline__7istreamFPUcic" "istream::getline(unsigned char *, int, char)"
190f2a
-    test_demangling_exact "lucid: getline__7istreamFPcic" "istream::getline(char *, int, char)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: ignore__7istreamFiT1" "istream::ignore(int, int)"
190f2a
-    test_demangling_exact "lucid: init__12strstreambufFPciT1" "strstreambuf::init(char *, int, char *)"
190f2a
-    test_demangling_exact "lucid: init__3iosFP9streambuf" "ios::init(streambuf *)"
190f2a
-    test_demangling_exact "lucid: initcount__13Iostream_init" "Iostream_init::initcount"
190f2a
-    test_demangling_exact "lucid: ipfx__7istreamFi" "istream::ipfx(int)"
190f2a
-    test_demangling_exact "lucid: ls_complicated__7ostreamFUc" "ostream::ls_complicated(unsigned char)"
190f2a
-    test_demangling_exact "lucid: ls_complicated__7ostreamFc" "ostream::ls_complicated(char)"
190f2a
-    test_demangling "lucid: open__11fstreambaseFPCciT2" \
190f2a
-	"fstreambase::open\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
190f2a
-    test_demangling "lucid: open__7filebufFPCciT2" \
190f2a
-	"filebuf::open\[(\]+(const char|char const) \[*\]+, int, int\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "lucid: overload1arg__FSc" "overload1arg(signed char)"
190f2a
-    test_demangling_exact "lucid: overload1arg__FUc" "overload1arg(unsigned char)"
190f2a
-    test_demangling_exact "lucid: overload1arg__FUi" "overload1arg(unsigned int)"
190f2a
-    test_demangling_exact "lucid: overload1arg__FUl" "overload1arg(unsigned long)"
190f2a
-    test_demangling_exact "lucid: overload1arg__FUs" "overload1arg(unsigned short)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Fc" "overload1arg(char)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Fd" "overload1arg(double)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Ff" "overload1arg(float)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Fi" "overload1arg(int)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Fl" "overload1arg(long)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Fs" "overload1arg(short)"
190f2a
-    test_demangling_exact "lucid: overload1arg__Fv" "overload1arg(void)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN21" "overloadargs(int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN31" "overloadargs(int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN41" "overloadargs(int, int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN51" "overloadargs(int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN61" "overloadargs(int, int, int, int, int, int, int)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN71" "overloadargs(int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN81" "overloadargs(int, int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN91" "overloadargs(int, int, int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiN91N11" "overloadargs(int, int, int, int, int, int, int, int, int, int, int)"
190f2a
-    test_demangling_exact "lucid: overloadargs__FiT1" "overloadargs(int, int)"
190f2a
-    test_demangling_exact "lucid: polar__FdT1" "polar(double, double)"
190f2a
-    test_demangling_exact "lucid: pow__F7complexT1" "pow(complex, complex)"
190f2a
-    test_demangling_exact "lucid: pow__F7complexd" "pow(complex, double)"
190f2a
-    test_demangling_exact "lucid: pow__F7complexi" "pow(complex, int)"
190f2a
-    test_demangling_exact "lucid: pow__Fd7complex" "pow(double, complex)"
190f2a
-    test_demangling_exact "lucid: pstart__FPciT2" "pstart(char *, int, int)"
190f2a
-    test_demangling_exact "lucid: put__7ostreamFc" "ostream::put(char)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: read__7istreamFPci" "istream::read(char *, int)"
190f2a
-    test_demangling_exact "lucid: resetiosflags__FR3iosl" "resetiosflags(ios &, long)"
190f2a
-    test_demangling_exact "lucid: restore_errno__FRi" "restore_errno(int &)"
190f2a
-    test_demangling_exact "lucid: rs_complicated__7istreamFRUc" "istream::rs_complicated(unsigned char &)"
190f2a
-    test_demangling_exact "lucid: rs_complicated__7istreamFRc" "istream::rs_complicated(char &)"
190f2a
-    test_demangling_exact "lucid: seekg__7istreamFl8seek_dir" "istream::seekg(long, seek_dir)"
190f2a
-    test_demangling_exact "lucid: seekoff__12strstreambufFl8seek_diri" "strstreambuf::seekoff(long, seek_dir, int)"
190f2a
-    test_demangling_exact "lucid: seekoff__9streambufFlQ2_3ios12ios_seek_diri" "streambuf::seekoff(long, ios::ios_seek_dir, int)"
190f2a
-    test_demangling_exact "lucid: seekpos__9streambufFli" "streambuf::seekpos(long, int)"
190f2a
-    test_demangling_exact "lucid: set_new_handler__FPFv_v" "set_new_handler(void (*)(void))"
190f2a
-    test_demangling_exact "lucid: setb__9streambufFPcT1i" "streambuf::setb(char *, char *, int)"
190f2a
-
190f2a
-    test_demangling_exact "lucid: setb__FR3iosi" "setb(ios &, int)"
190f2a
-    test_demangling_exact "lucid: setbuf__11fstreambaseFPci" "fstreambase::setbuf(char *, int)"
190f2a
-    test_demangling_exact "lucid: setbuf__9streambufFPUci" "streambuf::setbuf(unsigned char *, int)"
190f2a
-    test_demangling_exact "lucid: setbuf__9streambufFPciT2" "streambuf::setbuf(char *, int, int)"
190f2a
-    test_demangling_exact "lucid: setf__3iosFlT1" "ios::setf(long, long)"
190f2a
-    test_demangling_exact "lucid: setfill__FR3iosi" "setfill(ios &, int)"
190f2a
-    test_demangling_exact "lucid: setg__9streambufFPcN21" "streambuf::setg(char *, char *, char *)"
190f2a
-    test_demangling_exact "lucid: setp__9streambufFPcT1" "streambuf::setp(char *, char *)"
190f2a
-
190f2a
-    test_demangling "lucid: sputn__9streambufFPCci" \
190f2a
-	"streambuf::sputn\[(\]+(const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling "lucid: str__FPCci" \
190f2a
-	"str\[(\]+(const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling_exact "lucid: tie__3iosFP7ostream" "ios::tie(ostream *)"
190f2a
-    test_demangling_exact "lucid: uconv10__FUlPc" "uconv10(unsigned long, char *)"
190f2a
-
190f2a
-    test_demangling "lucid: write__7ostreamFPCci" \
190f2a
-	"ostream::write\[(\]+(const char|char const) \[*\]+, int\[)\]+"
190f2a
-    test_demangling_exact "lucid: xget__7istreamFPc" "istream::xget(char *)"
190f2a
-    test_demangling_exact "lucid: xsgetn__9streambufFPci" "streambuf::xsgetn(char *, int)"
190f2a
-    test_demangling "lucid: xsputn__9streambufFPCci" \
190f2a
-	"streambuf::xsputn\[(\]+(const char|char const) \[*\]+, int\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "lucid: _Utf390_1__1_9223372036854775807__9223372036854775" \
190f2a
-	    "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
190f2a
 }
190f2a
 
190f2a
-#
190f2a
-#  Test arm style name demangling
190f2a
-#
190f2a
-
190f2a
-proc test_arm_style_demangling {} {
190f2a
-    test_demangling_exact "arm: __dt__21T5__pt__11_PFiPPdPv_iFv" "T5<int (*)(int, double **, void *)>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__1cFi" "c::c(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dt__11T5__pt__2_iFv" "T5<int>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dt__11T5__pt__2_cFv" "T5<char>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__2T2Fi" "T2::T2(int)"
190f2a
-    test_demangling_exact "arm: __dt__2T1Fv" "T1::~T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dt__12T5__pt__3_1xFv" "T5<x>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dt__17T5__pt__8_PFcPv_iFv" "T5<int (*)(char, void *)>::~T5(void)"
190f2a
-
190f2a
-    test_demangling "arm: g__FP1cPC1cT1" \
190f2a
-	"g\[(\]+c *\[*\]+, (const c|c const) *\[*\]+, c *\[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FPUlPCUlT1" \
190f2a
-	"g\[(\]+unsigned long \[*\]+, (const unsigned long|unsigned long const) \[*\]+, unsigned long \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FPUiPCUiT1" \
190f2a
-	"g\[(\]+unsigned int \[*\]+, (const unsigned int|unsigned int const) \[*\]+, unsigned int \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FPUsPCUsT1" \
190f2a
-	"g\[(\]+unsigned short \[*\]+, (const unsigned short|unsigned short const) \[*\]+, unsigned short \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FPUcPCUcT1" \
190f2a
-	"g\[(\]+unsigned char \[*\]+, (const unsigned char|unsigned char const) \[*\]+, unsigned char \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__F1TPlPClT2" \
190f2a
-	"g\[(\]+T, long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRlRClT2" \
190f2a
-	"g\[(\]+R, long &, (const long|long const) &, long &\[)\]+"
190f2a
-    test_demangling "arm: g__F1TPiPCiT2" \
190f2a
-	"g\[(\]+T, int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRiRCiT2" \
190f2a
-	"g\[(\]+R, int &, (const int|int const) &, int &\[)\]+"
190f2a
-    test_demangling "arm: g__F1TPsPCsT2" \
190f2a
-	"g\[(\]+T, short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRsRCsT2" \
190f2a
-	"g\[(\]+R, short &, (const short|short const) &, short &\[)\]+"
190f2a
-    test_demangling "arm: g__F1TPcPCcT2" \
190f2a
-	"g\[(\]+T, char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRcRCcT2" \
190f2a
-	"g\[(\]+R, char &, (const char|char const) &, char &\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__21T5__pt__11_PFiPPdPv_iFi" "T5<int (*)(int, double **, void *)>::T5(int)"
190f2a
-
190f2a
-    test_demangling "arm: __gt__FRC2T2c" \
190f2a
-	"operator>\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "arm: __ge__FRC2T2c" \
190f2a
-	"operator>=\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "arm: __lt__FRC2T2c" \
190f2a
-	"operator<\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-
190f2a
-    test_demangling "arm: __le__FRC2T2c" \
190f2a
-	"operator<=\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "arm: __ne__FRC2T2c" \
190f2a
-	"operator!=\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "arm: __eq__FRC2T2c" \
190f2a
-	"operator==\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling_exact "arm: __amd__FR2T2i" "operator%=(T2 &, int)"
190f2a
-    test_demangling_exact "arm: __adv__FR2T2i" "operator/=(T2 &, int)"
190f2a
-    test_demangling_exact "arm: __amu__FR2T2i" "operator*=(T2 &, int)"
190f2a
-    test_demangling_exact "arm: __ami__FR2T2i" "operator-=(T2 &, int)"
190f2a
-    test_demangling_exact "arm: __apl__FR2T2i" "operator+=(T2 &, int)"
190f2a
-    test_demangling_exact "arm: __nw__2T1SFUi" "T1::operator new(unsigned int) static"
190f2a
-    test_demangling_exact "arm: __dl__2T1SFPv" "T1::operator delete(void *) static"
190f2a
-    test_demangling_exact "arm: put__2T7SFi" "T7::put(int) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__12T5__pt__3_1xSFPv" "T5<x>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: h__FUc" "h(unsigned char)"
190f2a
-    test_demangling_exact "arm: f__Fic" "f(int, char)"
190f2a
-    test_demangling_exact "arm: h__FUi" "h(unsigned int)"
190f2a
-    test_demangling_exact "arm: h__Fci" "h(char, int)"
190f2a
-    test_demangling_exact "arm: h__FUl" "h(unsigned long)"
190f2a
-    test_demangling_exact "arm: h__Fcl" "h(char, long)"
190f2a
-    test_demangling_exact "arm: h__FUs" "h(unsigned short)"
190f2a
-    test_demangling_exact "arm: h__Fcs" "h(char, short)"
190f2a
-    test_demangling "arm: __amd__FR2T2RC2T2" \
190f2a
-	"operator%=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __adv__FR2T2RC2T2" \
190f2a
-	"operator/=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __amu__FR2T2RC2T2" \
190f2a
-	"operator\[*\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __ami__FR2T2RC2T2" \
190f2a
-	"operator-=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __apl__FR2T2RC2T2" \
190f2a
-	"operator\[+\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-
190f2a
-    test_demangling "arm: g__F1SRPUlRPCUlT2" \
190f2a
-	"g\[(\]+S, unsigned long \[*\]+&, (const unsigned long|unsigned long const) \[*\]+&, unsigned long \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPUiRPCUiT2" \
190f2a
-	"g\[(\]+S, unsigned int \[*\]+&, (const unsigned int|unsigned int const) \[*\]+&, unsigned int \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPUsRPCUsT2" \
190f2a
-	"g\[(\]+S, unsigned short \[*\]+&, (const unsigned short|unsigned short const) \[*\]+&, unsigned short \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPUcRPCUcT2" \
190f2a
-	"g\[(\]+S, unsigned char \[*\]+&, (const unsigned char|unsigned char const) \[*\]+&, unsigned char \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1SRPlRPClT3" \
190f2a
-	"g\[(\]+T, S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1SRPiRPCiT3" \
190f2a
-	"g\[(\]+T, S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1SRPcRPCcT3" \
190f2a
-	"g\[(\]+T, S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: X__12T5__pt__3_1x" "T5<x>::X"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__11T5__pt__2_iFi" "T5<int>::T5(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__11T5__pt__2_cFi" "T5<char>::T5(int)"
190f2a
-
190f2a
-    test_demangling "arm: __gt__FRC2T2T1" \
190f2a
-	"operator>\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __ge__FRC2T2T1" \
190f2a
-	"operator>=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __lt__FRC2T2T1" \
190f2a
-	"operator<\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __le__FRC2T2T1" \
190f2a
-	"operator<=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __ne__FRC2T2T1" \
190f2a
-	"operator!=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __eq__FRC2T2T1" \
190f2a
-	"operator==\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: g__FcR1cRC1cT2" \
190f2a
-	"g\[(\]+char, c &, (const c|c const) &, c &\[)\]+"
190f2a
-    test_demangling "arm: g__FcRPdRPCdT2" \
190f2a
-	"g\[(\]+char, double *\[*\]+&, (const double|double const) *\[*\]+&, double *\[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__FcRPfRPCfT2" \
190f2a
-	"g\[(\]+char, float *\[*\]+&, (const float|float const) *\[*\]+&, float *\[*\]+&\[)\]+"
190f2a
-    test_demangling_exact "arm: h__FcT1" "h(char, char)"
190f2a
-    test_demangling_exact "arm: f__Ficd" "f(int, char, double)"
190f2a
-    test_demangling "arm: g__F1T1SdRPsRPCsT4" \
190f2a
-	"g\[(\]+T, S, double, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1cC1cT1" \
190f2a
-	"g\[(\]+c, (const c|c const), c\[)\]+"
190f2a
-    test_demangling "arm: g__FPdPCdT1" \
190f2a
-	"g\[(\]+double *\[*\]+, (const double|double const) *\[*\]+, double *\[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FPfPCfT1" \
190f2a
-	"g\[(\]+float *\[*\]+, (const float|float const) *\[*\]+, float *\[*\]+\[)\]+"
190f2a
-
190f2a
-    test_demangling "arm: g__FUlCUlT1" \
190f2a
-	"g\[(\]+unsigned long, (const unsigned long|unsigned long const), unsigned long\[)\]+"
190f2a
-    test_demangling "arm: g__FPlPClT1" \
190f2a
-	"g\[(\]+long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FUiCUiT1" \
190f2a
-	"g\[(\]+unsigned int, (const unsigned int|unsigned int const), unsigned int\[)\]+"
190f2a
-    test_demangling "arm: g__FPiPCiT1" \
190f2a
-	"g\[(\]+int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FUsCUsT1" \
190f2a
-	"g\[(\]+unsigned short, (const unsigned short|unsigned short const), unsigned short\[)\]+"
190f2a
-    test_demangling "arm: g__FPsPCsT1" \
190f2a
-	"g\[(\]+short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__FUcCUcT1" \
190f2a
-	"g\[(\]+unsigned char, (const unsigned char|unsigned char const), unsigned char\[)\]+"
190f2a
-    test_demangling "arm: g__FPcPCcT1" \
190f2a
-	"g\[(\]+char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
190f2a
-    test_demangling "arm: g__F1TlClT2" \
190f2a
-	"g\[(\]+T, long, (const long|long const), long\[)\]+"
190f2a
-    test_demangling "arm: g__F1TiCiT2" \
190f2a
-	"g\[(\]+T, int, (const int|int const), int\[)\]+"
190f2a
-    test_demangling "arm: g__F1TsCsT2" \
190f2a
-	"g\[(\]+T, short, (const short|short const), short\[)\]+"
190f2a
-    test_demangling "arm: g__F1TcCcT2" \
190f2a
-	"g\[(\]+T, char, (const char|char const), char\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__17T5__pt__8_PFcPv_iSFPv" "T5<int (*)(char, void *)>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling "arm: printf__FPCce" \
190f2a
-	"printf\[(\]+(const char|char const) \[*\]+,...\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: X__17T5__pt__8_PFcPv_i" "T5<int (*)(char, void *)>::X"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__12T5__pt__3_1xFi" "T5<x>::T5(int)"
190f2a
-
190f2a
-    test_demangling "arm: g__F1SRUlRCUlT2" \
190f2a
-	"g\[(\]+S, unsigned long &, (const unsigned long|unsigned long const) &, unsigned long &\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPlRPClT2" \
190f2a
-	"g\[(\]+S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRUiRCUiT2" \
190f2a
-	"g\[(\]+R, unsigned int &, (const unsigned int|unsigned int const) &, unsigned int &\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPiRPCiT2" \
190f2a
-	"g\[(\]+S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRUsRCUsT2" \
190f2a
-	"g\[(\]+R, unsigned short &, (const unsigned short|unsigned short const) &, unsigned short &\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPsRPCsT2" \
190f2a
-	"g\[(\]+S, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1RRUcRCUcT2" \
190f2a
-	"g\[(\]+R, unsigned char &, (const unsigned char|unsigned char const) &, unsigned char &\[)\]+"
190f2a
-    test_demangling "arm: g__F1SRPcRPCcT2" \
190f2a
-	"g\[(\]+S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1RRlRClT3" \
190f2a
-	"g\[(\]+T, R, long &, (const long|long const) &, long &\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1RRiRCiT3" \
190f2a
-	"g\[(\]+T, R, int &, (const int|int const) &, int &\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1RRsRCsT3" \
190f2a
-	"g\[(\]+T, R, short &, (const short|short const) &, short &\[)\]+"
190f2a
-    test_demangling "arm: g__F1T1RRcRCcT3" \
190f2a
-	"g\[(\]+T, R, char &, (const char|char const) &, char &\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__21T5__pt__11_PFiPPdPv_iSFPv" "T5<int (*)(int, double **, void *)>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: __std__foo" "global destructors keyed to foo"
190f2a
-
190f2a
-    test_demangling_exact "arm: __sti__bar" "global constructors keyed to bar"
190f2a
-
190f2a
-    test_demangling_exact "arm: f__FicdPcPFci_v" "f(int, char, double, char *, void (*)(char, int))"
190f2a
-    test_demangling_exact "arm: f__FicdPcPFic_v" "f(int, char, double, char *, void (*)(int, char))"
190f2a
-    test_demangling_exact "arm: get__2T7SFv" "T7::get(void) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: X__21T5__pt__11_PFiPPdPv_i" "T5<int (*)(int, double **, void *)>::X"
190f2a
-
190f2a
-    test_demangling "arm: g__FcRdRCdT2" \
190f2a
-	"g\[(\]+char, double &, (const double|double const) &, double &\[)\]+"
190f2a
-    test_demangling "arm: g__FcRfRCfT2" \
190f2a
-	"g\[(\]+char, float &, (const float|float const) &, float &\[)\]+"
190f2a
-    test_demangling "arm: __md__FC2T2i" \
190f2a
-	"operator%\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "arm: __dv__FC2T2i" \
190f2a
-	"operator/\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "arm: __ml__FC2T2i" \
190f2a
-	"operator\[*\]+\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "arm: __mi__FC2T2i" \
190f2a
-	"operator-\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "arm: __pl__FC2T2i" \
190f2a
-	"operator\[+\]+\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__11T5__pt__2_iSFPv" "T5<int>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__11T5__pt__2_cSFPv" "T5<char>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: h__Fc" "h(char)"
190f2a
-    test_demangling_exact "arm: h__Fd" "h(double)"
190f2a
-    test_demangling_exact "arm: h__Ff" "h(float)"
190f2a
-    test_demangling_exact "arm: h__Fi" "h(int)"
190f2a
-    test_demangling_exact "arm: f__Fi" "f(int)"
190f2a
-    test_demangling_exact "arm: h__Fl" "h(long)"
190f2a
-
190f2a
-    test_demangling_exact "arm: h__Fs" "h(short)"
190f2a
-    test_demangling "arm: __md__FC2T2RC2T2" \
190f2a
-	"operator%\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __dv__FC2T2RC2T2" \
190f2a
-	"operator/\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __ml__FC2T2RC2T2" \
190f2a
-	"operator\[*\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __mi__FC2T2RC2T2" \
190f2a
-	"operator-\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: __pl__FC2T2RC2T2" \
190f2a
-	"operator\[+\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "arm: g__FcRP1cRPC1cT2" \
190f2a
-	"g\[(\]+char, c *\[*\]+&, (const c|c const) *\[*\]+&, c *\[*\]+&\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: X__11T5__pt__2_c" "T5<char>::X"
190f2a
-
190f2a
-    test_demangling_exact "arm: X__11T5__pt__2_i" "T5<int>::X"
190f2a
-
190f2a
-    test_demangling "arm: g__FdCdT1" \
190f2a
-	"g\[(\]+double, (const double|double const), double\[)\]+"
190f2a
-    test_demangling "arm: g__FfCfT1" \
190f2a
-	"g\[(\]+float, (const float|float const), float\[)\]+"
190f2a
-    test_demangling "arm: g__FlClT1" \
190f2a
-	"g\[(\]+long, (const long|long const), long\[)\]+"
190f2a
-    test_demangling "arm: g__FiCiT1" \
190f2a
-	"g\[(\]+int, (const int|int const), int\[)\]+"
190f2a
-    test_demangling "arm: g__FsCsT1" \
190f2a
-	"g\[(\]+short, (const short|short const), short\[)\]+"
190f2a
-    test_demangling "arm: g__FcCcT1" \
190f2a
-	"g\[(\]+char, (const char|char const), char\[)\]+"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__17T5__pt__8_PFcPv_iFi" "T5<int (*)(char, void *)>::T5(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: f__FicdPc" "f(int, char, double, char *)"
190f2a
-    test_demangling_exact "arm: __nw__FUi" "operator new(unsigned int)"
190f2a
-    test_demangling_exact "arm: __ct__Q3_2T11a1bSFi" "T1::a::b::b(int) static"
190f2a
-    test_demangling_exact "arm: __dt__Q3_2T11a1bSFi" "T1::a::b::~b(int) static"
190f2a
-    test_demangling_exact "arm: put__Q3_2T11a1bSFi" "T1::a::b::put(int) static"
190f2a
-    test_demangling_exact "arm: get__Q2_2T11aSFv" "T1::a::get(void) static"
190f2a
-    test_demangling_exact "arm: put__2T1SFi" "T1::put(int) static"
190f2a
-    test_demangling_exact "arm: put__Q5_2T11a1b1c1dSFi" "T1::a::b::c::d::put(int) static"
190f2a
-    test_demangling_exact "arm: get__Q4_2T11a1b1cSFv" "T1::a::b::c::get(void) static"
190f2a
-    test_demangling_exact "arm: put__Q2_2T11aSFi" "T1::a::put(int) static"
190f2a
-    test_demangling_exact "arm: put__Q4_2T11a1b1cSFi" "T1::a::b::c::put(int) static"
190f2a
-    test_demangling_exact "arm: get__Q3_2T11a1bSFv" "T1::a::b::get(void) static"
190f2a
-    test_demangling_exact "arm: get__2T1SFv" "T1::get(void) static"
190f2a
-    test_demangling_exact "arm: get__Q5_2T11a1b1c1dSFv" "T1::a::b::c::d::get(void) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dt__11T1__pt__2_cFv" "T1<char>::~T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dt__12T1__pt__3_1tFv" "T1<t>::~T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__12T1__pt__3_1tSFPv" "T1<t>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__11T1__pt__2_cFi" "T1<char>::T1(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__11T1__pt__2_cFv" "T1<char>::T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__12T1__pt__3_1tFi" "T1<t>::T1(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__12T1__pt__3_1tFv" "T1<t>::T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __dl__11T1__pt__2_cSFPv" "T1<char>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "arm: bar__3fooFPv"       "foo::bar(void *)"
190f2a
-    test_demangling "arm: bar__3fooFPCv" \
190f2a
-	     "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
190f2a
-    test_demangling_exact "arm: bar__3fooCFPv"      "foo::bar(void *) const"
190f2a
-    test_demangling "arm: bar__3fooCFPCv" \
190f2a
-	    "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
190f2a
-    test_demangling_exact "arm: __eq__3fooFR3foo"   "foo::operator==(foo &)"
190f2a
-    test_demangling "arm: __eq__3fooFRC3foo" \
190f2a
-	 "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
190f2a
-    test_demangling_exact "arm: __eq__3fooCFR3foo"  "foo::operator==(foo &) const"
190f2a
-    test_demangling "arm: __eq__3fooCFRC3foo" \
190f2a
-	"foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
190f2a
-
190f2a
-    test_demangling_exact "arm: elem__15vector__pt__2_dFi" "vector<double>::elem(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: elem__15vector__pt__2_iFi" "vector<int>::elem(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__15vector__pt__2_dFi" "vector<double>::vector(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__15vector__pt__2_iFi" "vector<int>::vector(int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: __ct__25DListNode__pt__9_R6RLabelFR6RLabelP25DListNode__pt__9_R6RLabelT2" \
190f2a
-	"DListNode<RLabel &>::DListNode(RLabel &, DListNode<RLabel &> *, DListNode<RLabel &> *)"
190f2a
-
190f2a
-    test_demangling_exact "arm: bar__3fooFiT16FooBar" "foo::bar(int, int, FooBar)"
190f2a
-
190f2a
-    test_demangling_exact "arm: bar__3fooFPiN51PdN37PcN211T1iN215" \
190f2a
-      "foo::bar(int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, char *, char *, char *, int *, int, int, int)"
190f2a
-
190f2a
-    test_demangling_exact "arm: _Utf390_1__1_9223372036854775807__9223372036854775" \
190f2a
-	    "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
190f2a
-}
190f2a
-
190f2a
-proc test_hp_style_demangling {} {
190f2a
-
190f2a
-    # HP aCC mangling style is based on ARM for all the basic stuff,
190f2a
-    # so first we use some of the ARM tests here.  Later we have HP-specific
190f2a
-    # tests.
190f2a
-        
190f2a
-    test_demangling "hp: g__FP1cPC1cT1" \
190f2a
-	"g\[(\]+c *\[*\]+, (const c|c const) *\[*\]+, c *\[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FPUlPCUlT1" \
190f2a
-	"g\[(\]+unsigned long \[*\]+, (const unsigned long|unsigned long const) \[*\]+, unsigned long \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FPUiPCUiT1" \
190f2a
-	"g\[(\]+unsigned int \[*\]+, (const unsigned int|unsigned int const) \[*\]+, unsigned int \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FPUsPCUsT1" \
190f2a
-	"g\[(\]+unsigned short \[*\]+, (const unsigned short|unsigned short const) \[*\]+, unsigned short \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FPUcPCUcT1" \
190f2a
-	"g\[(\]+unsigned char \[*\]+, (const unsigned char|unsigned char const) \[*\]+, unsigned char \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__F1TPlPClT2" \
190f2a
-	"g\[(\]+T, long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRlRClT2" \
190f2a
-	"g\[(\]+R, long &, (const long|long const) &, long &\[)\]+"
190f2a
-    test_demangling "hp: g__F1TPiPCiT2" \
190f2a
-	"g\[(\]+T, int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRiRCiT2" \
190f2a
-	"g\[(\]+R, int &, (const int|int const) &, int &\[)\]+"
190f2a
-    test_demangling "hp: g__F1TPsPCsT2" \
190f2a
-	"g\[(\]+T, short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRsRCsT2" \
190f2a
-	"g\[(\]+R, short &, (const short|short const) &, short &\[)\]+"
190f2a
-    test_demangling "hp: g__F1TPcPCcT2" \
190f2a
-	"g\[(\]+T, char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRcRCcT2" \
190f2a
-	"g\[(\]+R, char &, (const char|char const) &, char &\[)\]+"
190f2a
-
190f2a
-    test_demangling "hp: __gt__FRC2T2c" \
190f2a
-	"operator>\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "hp: __ge__FRC2T2c" \
190f2a
-	"operator>=\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "hp: __lt__FRC2T2c" \
190f2a
-	"operator<\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-
190f2a
-    test_demangling "hp: __le__FRC2T2c" \
190f2a
-	"operator<=\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "hp: __ne__FRC2T2c" \
190f2a
-	"operator!=\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling "hp: __eq__FRC2T2c" \
190f2a
-	"operator==\[(\]+(const T2|T2 const) &, char\[)\]+"
190f2a
-    test_demangling_exact "hp: __amd__FR2T2i" "operator%=(T2 &, int)"
190f2a
-    test_demangling_exact "hp: __adv__FR2T2i" "operator/=(T2 &, int)"
190f2a
-    test_demangling_exact "hp: __amu__FR2T2i" "operator*=(T2 &, int)"
190f2a
-    test_demangling_exact "hp: __ami__FR2T2i" "operator-=(T2 &, int)"
190f2a
-    test_demangling_exact "hp: __apl__FR2T2i" "operator+=(T2 &, int)"
190f2a
-    test_demangling_exact "hp: __nw__2T1SFUi" "T1::operator new(unsigned int) static"
190f2a
-    test_demangling_exact "hp: __dl__2T1SFPv" "T1::operator delete(void *) static"
190f2a
-    test_demangling_exact "hp: put__2T7SFi" "T7::put(int) static"
190f2a
-
190f2a
-    test_demangling_exact "hp: h__FUc" "h(unsigned char)"
190f2a
-    test_demangling_exact "hp: f__Fic" "f(int, char)"
190f2a
-    test_demangling_exact "hp: h__FUi" "h(unsigned int)"
190f2a
-    test_demangling_exact "hp: h__Fci" "h(char, int)"
190f2a
-    test_demangling_exact "hp: h__FUl" "h(unsigned long)"
190f2a
-    test_demangling_exact "hp: h__Fcl" "h(char, long)"
190f2a
-    test_demangling_exact "hp: h__FUs" "h(unsigned short)"
190f2a
-    test_demangling_exact "hp: h__Fcs" "h(char, short)"
190f2a
-    test_demangling "hp: __amd__FR2T2RC2T2" \
190f2a
-	"operator%=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __adv__FR2T2RC2T2" \
190f2a
-	"operator/=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __amu__FR2T2RC2T2" \
190f2a
-	"operator\[*\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __ami__FR2T2RC2T2" \
190f2a
-	"operator-=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __apl__FR2T2RC2T2" \
190f2a
-	"operator\[+\]+=\[(\]+T2 &, (const T2|T2 const) &\[)\]+"
190f2a
-
190f2a
-    test_demangling "hp: g__F1SRPUlRPCUlT2" \
190f2a
-	"g\[(\]+S, unsigned long \[*\]+&, (const unsigned long|unsigned long const) \[*\]+&, unsigned long \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPUiRPCUiT2" \
190f2a
-	"g\[(\]+S, unsigned int \[*\]+&, (const unsigned int|unsigned int const) \[*\]+&, unsigned int \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPUsRPCUsT2" \
190f2a
-	"g\[(\]+S, unsigned short \[*\]+&, (const unsigned short|unsigned short const) \[*\]+&, unsigned short \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPUcRPCUcT2" \
190f2a
-	"g\[(\]+S, unsigned char \[*\]+&, (const unsigned char|unsigned char const) \[*\]+&, unsigned char \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1SRPlRPClT3" \
190f2a
-	"g\[(\]+T, S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1SRPiRPCiT3" \
190f2a
-	"g\[(\]+T, S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1SRPcRPCcT3" \
190f2a
-	"g\[(\]+T, S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
190f2a
-
190f2a
-
190f2a
-    test_demangling "hp: __gt__FRC2T2T1" \
190f2a
-	"operator>\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __ge__FRC2T2T1" \
190f2a
-	"operator>=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __lt__FRC2T2T1" \
190f2a
-	"operator<\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __le__FRC2T2T1" \
190f2a
-	"operator<=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __ne__FRC2T2T1" \
190f2a
-	"operator!=\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __eq__FRC2T2T1" \
190f2a
-	"operator==\[(\]+(const T2|T2 const) &, (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: g__FcR1cRC1cT2" \
190f2a
-	"g\[(\]+char, c &, (const c|c const) &, c &\[)\]+"
190f2a
-    test_demangling "hp: g__FcRPdRPCdT2" \
190f2a
-	"g\[(\]+char, double *\[*\]+&, (const double|double const) *\[*\]+&, double *\[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__FcRPfRPCfT2" \
190f2a
-	"g\[(\]+char, float *\[*\]+&, (const float|float const) *\[*\]+&, float *\[*\]+&\[)\]+"
190f2a
-    test_demangling_exact "hp: h__FcT1" "h(char, char)"
190f2a
-    test_demangling_exact "hp: f__Ficd" "f(int, char, double)"
190f2a
-    test_demangling "hp: g__F1T1SdRPsRPCsT4" \
190f2a
-	"g\[(\]+T, S, double, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1cC1cT1" \
190f2a
-	"g\[(\]+c, (const c|c const), c\[)\]+"
190f2a
-    test_demangling "hp: g__FPdPCdT1" \
190f2a
-	"g\[(\]+double *\[*\]+, (const double|double const) *\[*\]+, double *\[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FPfPCfT1" \
190f2a
-	"g\[(\]+float *\[*\]+, (const float|float const) *\[*\]+, float *\[*\]+\[)\]+"
190f2a
-
190f2a
-    test_demangling "hp: g__FUlCUlT1" \
190f2a
-	"g\[(\]+unsigned long, (const unsigned long|unsigned long const), unsigned long\[)\]+"
190f2a
-    test_demangling "hp: g__FPlPClT1" \
190f2a
-	"g\[(\]+long \[*\]+, (const long|long const) \[*\]+, long \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FUiCUiT1" \
190f2a
-	"g\[(\]+unsigned int, (const unsigned int|unsigned int const), unsigned int\[)\]+"
190f2a
-    test_demangling "hp: g__FPiPCiT1" \
190f2a
-	"g\[(\]+int \[*\]+, (const int|int const) \[*\]+, int \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FUsCUsT1" \
190f2a
-	"g\[(\]+unsigned short, (const unsigned short|unsigned short const), unsigned short\[)\]+"
190f2a
-    test_demangling "hp: g__FPsPCsT1" \
190f2a
-	"g\[(\]+short \[*\]+, (const short|short const) \[*\]+, short \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__FUcCUcT1" \
190f2a
-	"g\[(\]+unsigned char, (const unsigned char|unsigned char const), unsigned char\[)\]+"
190f2a
-    test_demangling "hp: g__FPcPCcT1" \
190f2a
-	"g\[(\]+char \[*\]+, (const char|char const) \[*\]+, char \[*\]+\[)\]+"
190f2a
-    test_demangling "hp: g__F1TlClT2" \
190f2a
-	"g\[(\]+T, long, (const long|long const), long\[)\]+"
190f2a
-    test_demangling "hp: g__F1TiCiT2" \
190f2a
-	"g\[(\]+T, int, (const int|int const), int\[)\]+"
190f2a
-    test_demangling "hp: g__F1TsCsT2" \
190f2a
-	"g\[(\]+T, short, (const short|short const), short\[)\]+"
190f2a
-    test_demangling "hp: g__F1TcCcT2" \
190f2a
-	"g\[(\]+T, char, (const char|char const), char\[)\]+"
190f2a
-
190f2a
-    test_demangling "hp: printf__FPCce" \
190f2a
-	"printf\[(\]+(const char|char const) \[*\]+,...\[)\]+"
190f2a
-
190f2a
-
190f2a
-    test_demangling "hp: g__F1SRUlRCUlT2" \
190f2a
-	"g\[(\]+S, unsigned long &, (const unsigned long|unsigned long const) &, unsigned long &\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPlRPClT2" \
190f2a
-	"g\[(\]+S, long \[*\]+&, (const long|long const) \[*\]+&, long \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRUiRCUiT2" \
190f2a
-	"g\[(\]+R, unsigned int &, (const unsigned int|unsigned int const) &, unsigned int &\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPiRPCiT2" \
190f2a
-	"g\[(\]+S, int \[*\]+&, (const int|int const) \[*\]+&, int \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRUsRCUsT2" \
190f2a
-	"g\[(\]+R, unsigned short &, (const unsigned short|unsigned short const) &, unsigned short &\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPsRPCsT2" \
190f2a
-	"g\[(\]+S, short \[*\]+&, (const short|short const) \[*\]+&, short \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1RRUcRCUcT2" \
190f2a
-	"g\[(\]+R, unsigned char &, (const unsigned char|unsigned char const) &, unsigned char &\[)\]+"
190f2a
-    test_demangling "hp: g__F1SRPcRPCcT2" \
190f2a
-	"g\[(\]+S, char \[*\]+&, (const char|char const) \[*\]+&, char \[*\]+&\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1RRlRClT3" \
190f2a
-	"g\[(\]+T, R, long &, (const long|long const) &, long &\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1RRiRCiT3" \
190f2a
-	"g\[(\]+T, R, int &, (const int|int const) &, int &\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1RRsRCsT3" \
190f2a
-	"g\[(\]+T, R, short &, (const short|short const) &, short &\[)\]+"
190f2a
-    test_demangling "hp: g__F1T1RRcRCcT3" \
190f2a
-	"g\[(\]+T, R, char &, (const char|char const) &, char &\[)\]+"
190f2a
-
190f2a
-
190f2a
-    test_demangling_exact "hp: f__FicdPcPFci_v" "f(int, char, double, char *, void (*)(char, int))"
190f2a
-    test_demangling_exact "hp: f__FicdPcPFic_v" "f(int, char, double, char *, void (*)(int, char))"
190f2a
-    test_demangling_exact "hp: get__2T7SFv" "T7::get(void) static"
190f2a
-
190f2a
-
190f2a
-    test_demangling "hp: g__FcRdRCdT2" \
190f2a
-	"g\[(\]+char, double &, (const double|double const) &, double &\[)\]+"
190f2a
-    test_demangling "hp: g__FcRfRCfT2" \
190f2a
-	"g\[(\]+char, float &, (const float|float const) &, float &\[)\]+"
190f2a
-    test_demangling "hp: __md__FC2T2i" \
190f2a
-	"operator%\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "hp: __dv__FC2T2i" \
190f2a
-	"operator/\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "hp: __ml__FC2T2i" \
190f2a
-	"operator\[*\]+\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "hp: __mi__FC2T2i" \
190f2a
-	"operator-\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-    test_demangling "hp: __pl__FC2T2i" \
190f2a
-	"operator\[+\]+\[(\]+(const T2|T2 const), int\[)\]+"
190f2a
-
190f2a
-
190f2a
-    test_demangling_exact "hp: h__Fc" "h(char)"
190f2a
-    test_demangling_exact "hp: h__Fd" "h(double)"
190f2a
-    test_demangling_exact "hp: h__Ff" "h(float)"
190f2a
-    test_demangling_exact "hp: h__Fi" "h(int)"
190f2a
-    test_demangling_exact "hp: f__Fi" "f(int)"
190f2a
-    test_demangling_exact "hp: h__Fl" "h(long)"
190f2a
-
190f2a
-    test_demangling_exact "hp: h__Fs" "h(short)"
190f2a
-    test_demangling "hp: __md__FC2T2RC2T2" \
190f2a
-	"operator%\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __dv__FC2T2RC2T2" \
190f2a
-	"operator/\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __ml__FC2T2RC2T2" \
190f2a
-	"operator\[*\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __mi__FC2T2RC2T2" \
190f2a
-	"operator-\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: __pl__FC2T2RC2T2" \
190f2a
-	"operator\[+\]+\[(\]+(const T2|T2 const), (const T2|T2 const) &\[)\]+"
190f2a
-    test_demangling "hp: g__FcRP1cRPC1cT2" \
190f2a
-	"g\[(\]+char, c *\[*\]+&, (const c|c const) *\[*\]+&, c *\[*\]+&\[)\]+"
190f2a
-
190f2a
-
190f2a
-    test_demangling "hp: g__FdCdT1" \
190f2a
-	"g\[(\]+double, (const double|double const), double\[)\]+"
190f2a
-    test_demangling "hp: g__FfCfT1" \
190f2a
-	"g\[(\]+float, (const float|float const), float\[)\]+"
190f2a
-    test_demangling "hp: g__FlClT1" \
190f2a
-	"g\[(\]+long, (const long|long const), long\[)\]+"
190f2a
-    test_demangling "hp: g__FiCiT1" \
190f2a
-	"g\[(\]+int, (const int|int const), int\[)\]+"
190f2a
-    test_demangling "hp: g__FsCsT1" \
190f2a
-	"g\[(\]+short, (const short|short const), short\[)\]+"
190f2a
-    test_demangling "hp: g__FcCcT1" \
190f2a
-	"g\[(\]+char, (const char|char const), char\[)\]+"
190f2a
-
190f2a
-
190f2a
-    test_demangling_exact "hp: f__FicdPc" "f(int, char, double, char *)"
190f2a
-    test_demangling_exact "hp: __nw__FUi" "operator new(unsigned int)"
190f2a
-    test_demangling_exact "hp: __ct__Q3_2T11a1bSFi" "T1::a::b::b(int) static"
190f2a
-    test_demangling_exact "hp: __dt__Q3_2T11a1bSFi" "T1::a::b::~b(int) static"
190f2a
-    test_demangling_exact "hp: put__Q3_2T11a1bSFi" "T1::a::b::put(int) static"
190f2a
-    test_demangling_exact "hp: get__Q2_2T11aSFv" "T1::a::get(void) static"
190f2a
-    test_demangling_exact "hp: put__2T1SFi" "T1::put(int) static"
190f2a
-    test_demangling_exact "hp: put__Q5_2T11a1b1c1dSFi" "T1::a::b::c::d::put(int) static"
190f2a
-    test_demangling_exact "hp: get__Q4_2T11a1b1cSFv" "T1::a::b::c::get(void) static"
190f2a
-    test_demangling_exact "hp: put__Q2_2T11aSFi" "T1::a::put(int) static"
190f2a
-    test_demangling_exact "hp: put__Q4_2T11a1b1cSFi" "T1::a::b::c::put(int) static"
190f2a
-    test_demangling_exact "hp: get__Q3_2T11a1bSFv" "T1::a::b::get(void) static"
190f2a
-    test_demangling_exact "hp: get__2T1SFv" "T1::get(void) static"
190f2a
-    test_demangling_exact "hp: get__Q5_2T11a1b1c1dSFv" "T1::a::b::c::d::get(void) static"
190f2a
-
190f2a
-
190f2a
-    test_demangling_exact "hp: bar__3fooFPv"       "foo::bar(void *)"
190f2a
-    test_demangling "hp: bar__3fooFPCv" \
190f2a
-	     "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+"
190f2a
-    test_demangling_exact "hp: bar__3fooCFPv"      "foo::bar(void *) const"
190f2a
-    test_demangling "hp: bar__3fooCFPCv" \
190f2a
-	    "foo::bar\[(\]+(const void|void const) *\[*\]+\[)\]+ const"
190f2a
-    test_demangling_exact "hp: __eq__3fooFR3foo"   "foo::operator==(foo &)"
190f2a
-    test_demangling "hp: __eq__3fooFRC3foo" \
190f2a
-	 "foo::operator==\[(\]+(const foo|foo const) &\[)\]+"
190f2a
-    test_demangling_exact "hp: __eq__3fooCFR3foo"  "foo::operator==(foo &) const"
190f2a
-    test_demangling "hp: __eq__3fooCFRC3foo" \
190f2a
-	"foo::operator==\[(\]+(const foo|foo const) &\[)\]+ const"
190f2a
-
190f2a
-    test_demangling_exact "hp: bar__3fooFiT16FooBar" "foo::bar(int, int, FooBar)"
190f2a
-
190f2a
-    test_demangling_exact "hp: bar__3fooFPiN51PdN37PcN211T1iN215" \
190f2a
-      "foo::bar(int *, int *, int *, int *, int *, int *, double *, double *, double *, double *, char *, char *, char *, int *, int, int, int)"
190f2a
-
190f2a
-
190f2a
-    # HP aCC specific tests. HP aCC demangling does not use __pt__ for
190f2a
-    # template specifications.  There are other differences as well.
190f2a
-
190f2a
-    test_demangling_exact "hp: __dt__2T5XTPFiPPdPv_i__Fv" "T5<int (*)(int, double **, void *)>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__1cFi" "c::c(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dt__2T5XTi__Fv" "T5<int>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dt__2T5XTc__Fv" "T5<char>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T2Fi" "T2::T2(int)"
190f2a
-    test_demangling_exact "hp: __dt__2T1Fv" "T1::~T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dt__2T5XT1x__Fv" "T5<x>::~T5(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dt__2T5XTPFcPv_i__Fv" "T5<int (*)(char, void *)>::~T5(void)"
190f2a
-    
190f2a
-    test_demangling_exact "hp: __ct__2T5XTPFiPPdPv_i__Fi" "T5<int (*)(int, double **, void *)>::T5(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T5XT1x__SFPv" "T5<x>::operator delete(void *) static"
190f2a
-    
190f2a
-    test_demangling_exact "hp: X__2T5XT1x" "T5<x>::X"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T5XTi__Fi" "T5<int>::T5(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T5XTc__Fi" "T5<char>::T5(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T5XTPFcPv_i__SFPv" "T5<int (*)(char, void *)>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "hp: X__2T5XTPFcPv_i" "T5<int (*)(char, void *)>::X"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T5XT1x__Fi" "T5<x>::T5(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T5XTPFiPPdPv_i__SFPv" "T5<int (*)(int, double **, void *)>::operator delete(void *) static"
190f2a
-    test_demangling_exact "hp: X__2T5XTPFiPPdPv_i" "T5<int (*)(int, double **, void *)>::X"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T5XTi__SFPv" "T5<int>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T5XTc__SFPv" "T5<char>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "hp: X__2T5XTc" "T5<char>::X"
190f2a
-
190f2a
-    test_demangling_exact "hp: X__2T5XTi" "T5<int>::X"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T5XTPFcPv_i__Fi" "T5<int (*)(char, void *)>::T5(int)"
190f2a
-    
190f2a
-    test_demangling_exact "hp: __dt__2T1XTc__Fv" "T1<char>::~T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dt__2T1XT1t__Fv" "T1<t>::~T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T1XT1t__SFPv" "T1<t>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T1XTc__Fi" "T1<char>::T1(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T1XTc__Fv" "T1<char>::T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T1XT1t__Fi" "T1<t>::T1(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T1XT1t__Fv" "T1<t>::T1(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __dl__2T1XTc__SFPv" "T1<char>::operator delete(void *) static"
190f2a
-
190f2a
-    test_demangling_exact "hp: elem__6vectorXTd__Fi" "vector<double>::elem(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: elem__6vectorXTi__Fi" "vector<int>::elem(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__6vectorXTd__Fi" "vector<double>::vector(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__6vectorXTi__Fi" "vector<int>::vector(int)"
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__9DListNodeXTR6RLabel__FR6RLabelP9DListNodeXTR6RLabel_T2" \
190f2a
-	"DListNode<RLabel &>::DListNode(RLabel &, DListNode<RLabel &> *, DListNode<RLabel &> *)"
190f2a
-
190f2a
-
190f2a
-    # Absolute integer constants in template args
190f2a
-
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiUP34__Fi" "vector<int,34U>::elem(int)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXUP2701Td__Fi" "vector<2701U,double>::elem(int)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiSP334__Fi" "vector<int,334>::elem(int)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiSN67__Fi" "vector<int,-67>::elem(int)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiSM__SCFPPd" "vector<int,-2147483648>::elem(double **) static const"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiSN67UP4000TRs__Fi" "vector<int,-67,4000U,short &>::elem(int)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiSN67TRdTFPv_i__Fi" "vector<int,-67,double &,int (void *)>::elem(int)"
190f2a
-    test_demangling_exact "hp: X__6vectorXTiSN67TdTPvUP5TRs" "vector<int,-67,double,void *,5U,short &>::X"
190f2a
-
190f2a
-    # Named constants in template args
190f2a
-
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiA3foo__Fi" "vector<int,&foo>::elem(int)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiA3fooTPvA5Label__FiPPvT2" "vector<int,&foo,void *,&Label>::elem(int, void **, void **)"
190f2a
-    test_demangling_exact "hp: elem__6vectorXTiSN42A3foo__Fi" "vector<int,-42,&foo>::elem(int)"
190f2a
-
190f2a
-    # Alternate entry points for functions
190f2a
-
190f2a
-    test_demangling_exact "hp: __ct__2T5XTPFcPv_i__Fi_2" "T5<int (*)(char, void *)>::T5(int)"
190f2a
-    test_demangling_exact "hp: __ct__2T5XTPFcPv_i__Fi_19" "T5<int (*)(char, void *)>::T5(int)"
190f2a
-    test_demangling_exact "hp: f__FicdPcPFci_v_34" "f(int, char, double, char *, void (*)(char, int))"
190f2a
-
190f2a
-
190f2a
-    # Template partial specializations
190f2a
-
190f2a
-# FIXME!  The # characters don't go through expect, and backslashes don't seem to work.
190f2a
-#    test_demangling_exact "hp: spec__13Spec<#1,#1.*>XTiTPi_FPi" "Spec<int,int *>::spec(int *)"
190f2a
-#    test_demangling_exact "hp: spec__16Spec<#1,#1.&,#1>XTiTRiTi_FPi" "Spec<int,int &, int>::spec(int *)"
190f2a
-# Fake test -- replace # with %
190f2a
-    test_demangling_exact "hp: spec__13Spec<%1,%1.*>XTiTPi_FPi" "Spec<int,int *>::spec(int *)"
190f2a
-    test_demangling_exact "hp: spec__16Spec<%1,%1.&,%1>XTiTRiTi_FPi" "Spec<int,int &,int>::spec(int *)"
190f2a
-
190f2a
-    # Global template functions
190f2a
-
190f2a
-    test_demangling_exact "hp: add__XTc_FcT1" "add<char>(char, char)"
190f2a
-    test_demangling_exact "hp: add__XTcSP9A5label_FcPPlT1" "add<char,9,&label>(char, long **, char)"
190f2a
-    test_demangling_exact "hp: add__XTPfTFPd_f_FcT1" "add<float *,float (double *)>(char, char)"
190f2a
-
190f2a
-    # Template for template arg
190f2a
-
190f2a
-    test_demangling_exact "hp: unLink__12basic_stringXTcT18string_char_traitsXTc_T9allocator_Fv" "basic_string<char,string_char_traits<char>,allocator>::unLink(void)"
190f2a
-
190f2a
-    test_demangling_exact "hp: _Utf390_1__1_9223372036854775807__9223372036854775" \
190f2a
-	    "Can't demangle \"_Utf390_1__1_9223372036854775807__9223372036854775\""
190f2a
-}
190f2a
-
190f2a
-
190f2a
 proc catch_demangling_errors {command} {
190f2a
     if {[catch $command result]} {
190f2a
 	puts "ERROR: demangle.exp: while running $command: $result"
190f2a
@@ -1593,10 +183,7 @@ proc do_tests {} {
190f2a
     # Using catch_demangling_errors this way ensures that, if one of
190f2a
     # the functions raises a Tcl error, then it'll get reported, and
190f2a
     # the rest of the functions will still run.
190f2a
-    catch_demangling_errors test_lucid_style_demangling
190f2a
-    catch_demangling_errors test_gnu_style_demangling
190f2a
-    catch_demangling_errors test_arm_style_demangling
190f2a
-    catch_demangling_errors test_hp_style_demangling
190f2a
+    catch_demangling_errors test_gnuv3_style_demangling
190f2a
 
190f2a
     # Verify specifying demangle language.
190f2a
     gdb_test_no_output "set language unknown"
190f2a
diff --git a/gdb/valops.c b/gdb/valops.c
190f2a
--- a/gdb/valops.c
190f2a
+++ b/gdb/valops.c
190f2a
@@ -2013,23 +2013,12 @@ search_struct_method (const char *name, struct value **arg1p,
190f2a
   int i;
190f2a
   struct value *v;
190f2a
   int name_matched = 0;
190f2a
-  char dem_opname[64];
190f2a
 
190f2a
   type = check_typedef (type);
190f2a
   for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; i--)
190f2a
     {
190f2a
       const char *t_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
190f2a
 
190f2a
-      /* FIXME!  May need to check for ARM demangling here.  */
190f2a
-      if (startswith (t_field_name, "__") ||
190f2a
-	  startswith (t_field_name, "op") ||
190f2a
-	  startswith (t_field_name, "type"))
190f2a
-	{
190f2a
-	  if (cplus_demangle_opname (t_field_name, dem_opname, DMGL_ANSI))
190f2a
-	    t_field_name = dem_opname;
190f2a
-	  else if (cplus_demangle_opname (t_field_name, dem_opname, 0))
190f2a
-	    t_field_name = dem_opname;
190f2a
-	}
190f2a
       if (t_field_name && (strcmp_iw (t_field_name, name) == 0))
190f2a
 	{
190f2a
 	  int j = TYPE_FN_FIELDLIST_LENGTH (type, i) - 1;
190f2a
@@ -3435,19 +3424,7 @@ value_struct_elt_for_reference (struct type *domain, LONGEST offset,
190f2a
   for (i = TYPE_NFN_FIELDS (t) - 1; i >= 0; --i)
190f2a
     {
190f2a
       const char *t_field_name = TYPE_FN_FIELDLIST_NAME (t, i);
190f2a
-      char dem_opname[64];
190f2a
 
190f2a
-      if (startswith (t_field_name, "__") 
190f2a
-	  || startswith (t_field_name, "op") 
190f2a
-	  || startswith (t_field_name, "type"))
190f2a
-	{
190f2a
-	  if (cplus_demangle_opname (t_field_name, 
190f2a
-				     dem_opname, DMGL_ANSI))
190f2a
-	    t_field_name = dem_opname;
190f2a
-	  else if (cplus_demangle_opname (t_field_name, 
190f2a
-					  dem_opname, 0))
190f2a
-	    t_field_name = dem_opname;
190f2a
-	}
190f2a
       if (t_field_name && strcmp (t_field_name, name) == 0)
190f2a
 	{
190f2a
 	  int j;