+2006-10-09 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/29095
+ * libsupc++/cxxabi.h (__cxa_cdtor_type): Explicit "C" linkage.
+ * config/cpu/arm/cxxabi_tweaks.h: Same.
+ * config/cpu/generic/cxxabi_tweaks.h: Same.
+ * testsuite/abi: Add.
+ * testsuite/abi/header_cxxabi.cc: New.
+ * testsuite/demangle: Move...
+ * testsuite/abi/demangle: ...here.
+ * testsuite/libstdc++-dg/conformance.exp: Adjust testsuite file
+ calculation.
+ * scripts/create_testsuite_files: Same.
+ * testsuite/lib/libstdc++.exp (v3_target_compile_as_c): New.
+ (libstdc++-dg-test): Use it.
+
2006-10-09 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28277 (partial: __add_grouping)
// Control various target specific ABI tweaks. ARM version.
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifdef __cplusplus
namespace __cxxabiv1
{
+ extern "C"
+ {
#endif
#ifdef __ARM_EABI__
#endif //!__ARM_EABI__
#ifdef __cplusplus
+ }
} // namespace __cxxabiv1
#endif
-#endif // __cxxabiv1
+#endif
// Control various target specific ABI tweaks. Generic version.
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
#ifdef __cplusplus
namespace __cxxabiv1
{
+ extern "C"
+ {
#endif
// The generic ABI uses the first byte of a 64-bit guard variable.
typedef void __cxa_cdtor_return_type;
#ifdef __cplusplus
+ }
} // namespace __cxxabiv1
#endif
-#endif // __cxxabiv1
+#endif
// new abi support -*- C++ -*-
-// Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
#ifdef __cplusplus
namespace __cxxabiv1
{
- typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
-
extern "C"
{
#endif
+ typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
+
// Allocate array.
void*
__cxa_vec_new(size_t __element_count, size_t __element_size,
# This is the ugly version of "everything but the current directory". It's
# what has to happen when find(1) doesn't support -mindepth, or -xtype.
dlist=`echo [0-9][0-9]*`
-dlist="$dlist backward demangle ext performance thread tr1"
+dlist="$dlist abi backward ext performance thread tr1"
find $dlist "(" -type f -o -type l ")" -name "*.cc" -print > $tmp.01
find $dlist "(" -type f -o -type l ")" -name "*.c" -print > $tmp.02
cat $tmp.01 $tmp.02 | sort > $tmp.1
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // extern "C" function
+ // extern "C" float f(void) { };
+ // T f
+ // f is ambiguous between "C" external name and internal built-in type
+ // name. The ambiguity is resolved to the built-in type name.
+ verify_demangle("f", "float");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // or variable "f"
+ // int f;
+ // B f
+ // f is ambiguous between variable external name and internal built-in type
+ // name. The ambiguity is resolved to the built-in type name.
+ verify_demangle("f", "float");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // or a global namespace variable "f"
+ /*
+ namespace f
+ {
+ int f;
+ }
+ */
+ verify_demangle("_ZN1f1fE", "f::f");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // void f() { };
+ // int f() { };
+ // verify_demangle("_Z1fv", "f(void)");
+ verify_demangle("_Z1fv", "f()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // void f(int) { };
+ // int f(int) { };
+ verify_demangle("_Z1fi", "f(int)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // class bar { };
+ // void foo(bar) { };
+ verify_demangle("_Z3foo3bar", "foo(bar)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // class X { };
+ // int operator%(X, X) { };
+ verify_demangle("_Zrm1XS_", "operator%(X, X)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // int operator+(X&, X&) { };
+ verify_demangle("_ZplR1XS0_", "operator+(X&, X&)"); // XXX
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // int operator<< (X const&, X const&) { };
+ verify_demangle("_ZlsRK1XS1_", "operator<<(X const&, X const&)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ template<typename T>
+ class Foo
+ { static int bar; };
+ int Foo<int[4]>::bar;
+ */
+ verify_demangle("_ZN3FooIA4_iE3barE", "Foo<int [4]>::bar");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // template<typename T> void f(int) { }
+ // template void f<int>(int);
+ // NB: the return type is always explicitly encoded for template
+ // functions taking parameters.
+ verify_demangle("_Z1fIiEvi", "void f<int>(int)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ class Duo { };
+ template<typename T> void first(Duo) { }
+ template void first<Duo>(Duo);
+ */
+ verify_demangle("_Z5firstI3DuoEvS0_", "void first<Duo>(Duo)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ class Duo { };
+ template<typename T> void first(T obj) { }
+ template void first(Duo);
+ */
+ verify_demangle("_Z5firstI3DuoEvT_", "void first<Duo>(Duo)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ typedef void fun(double);
+ template<typename I, typename T, typename J> void foo() { }
+ template void foo<int, fun, int>();
+ */
+ //demangle("_Z3fooIiPFidEiEvv", "void foo<int, int (*)(double), int>(void)");
+ verify_demangle("_Z3fooIiFvdEiEvv", "void foo<int, void ()(double), int>()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ namespace N
+ {
+ int f;
+ }
+ */
+ verify_demangle("_ZN1N1fE", "N::f");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ namespace System
+ {
+ struct Sound
+ {
+ int beep();
+ };
+
+ int Sound::beep() { };
+ }
+ */
+ // verify_demangle("_ZN6System5Sound4beepEv", "System::Sound::beep(void)");
+ verify_demangle("_ZN6System5Sound4beepEv", "System::Sound::beep()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ namespace Arena
+ {
+ int level;
+ }
+ */
+ verify_demangle("_ZN5Arena5levelE", "Arena::level");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ template<typename T1, typename T2> struct Stack
+ {
+ static int level;
+ int return_level() { return level; }
+ };
+ template struct Stack<int, int>;
+ */
+ verify_demangle("_ZN5StackIiiE5levelE", "Stack<int, int>::level");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_Z1fI1XEvPVN1AIT_E1TE", "void f<X>(A<X>::T volatile*)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_ZngILi42EEvN1AIXplT_Li2EEE1TE",
+ "void operator-<42>(A<(42) + (2)>::T)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_Z4makeI7FactoryiET_IT0_Ev",
+ "Factory<int> make<Factory, int>()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_Z4makeI7FactoryiET_IT0_Ev",
+ "Factory<int> make<Factory, int>()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_Z3foo5Hello5WorldS0_S_",
+ "foo(Hello, World, World, Hello)");
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_Z3fooPM2ABi", "foo(int AB::**)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // Equivalent
+ // uncompressed, cp-dem
+ // verify_demangle("_ZlsRSoRKSs", "operator<<(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)");
+ // compressed (good!), new __cxa_demangle
+ verify_demangle("_ZlsRSoRKSs",
+ "operator<<(std::ostream&, std::string const&)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_ZTI7a_class", "typeinfo for a_class");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Examples given in the IA64 C++ ABI
+// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // 5.1.5 Type encodings.
+ // int* volatile const restrict _far p;
+ // cplus-dem FAIL
+ // icc CORE
+ // Equivalent as considered order-insensitive.
+ // standard text
+ // verify_demangle("U4_farrVKPi", "int* volatile const restrict _far");
+ // new __cxa_demangle
+ verify_demangle("U4_farrVKPi", "int* const volatile restrict _far");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // template<int I> void foo (int (&)[I + 1]) { };
+ // template void foo<2> (int (&)[3]);
+ // Equivalent, but formatting difference in void argument and parentheses.
+ // icc, __cxa_demangle
+ verify_demangle("_Z3fooILi2EEvRAplT_Li1E_i",
+ "void foo<2>(int (&) [(2) + (1)])");
+ // cplus-dem
+ // verify_demangle("_Z3fooILi2EEvRAplT_Li1E_i",
+ // "void foo<(int)2>(int (&) [((int)2)+((int)1)])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // struct A;
+ // void f (void (A::*)() const) {}
+ // cplus-dem FAIL
+ // Equivalent, but formatting difference in void argument.
+ verify_demangle("_Z1fM1AKFvvE", "f(void (A::*)() const)");
+ // verify_demangle("_Z1fM1AKFvvE", "f(void (A::*)(void) const)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // void foo(char);
+ verify_demangle("_Z3fooc", "foo(char)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // void foo(char);
+ // template<void (&)(char)> struct CB { };
+ // CB<foo> obj;
+ // cplus-dem FAIL
+ // standard text FAIL "CB<foo>"
+ verify_demangle("2CBIL_Z3foocEE", "CB<foo(char)>");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // extern "C" bool IsEmpty(char *);
+ // template<void (&)(char *)> struct CB;
+ // CB<IsEmpty> is mangled as
+ // cplus-dem FAIL
+ verify_demangle("2CBIL_Z7IsEmptyEE", "CB<IsEmpty>");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // 5.1.6 Scope Encoding
+ /*
+ namespace N
+ {
+ inline char*
+ f(int i)
+ {
+ static char *p = "Itanium C++ ABI"; // p = 1, "..." = 2
+ {
+ struct X
+ { // X = 3
+ void g() {}
+ };
+ }
+ return p[i];
+ }
+ }
+ */
+ // encoding of N::f::p (first local mangled entity)
+ verify_demangle("_ZZN1N1fEiE1p", "N::f(int)::p");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // encoding of N::f::"Itanium C++ ABI" (no discriminator)
+ verify_demangle("_ZZN1N1fEiEs", "N::f(int)::string literal");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // encoding of N::f::X::g()
+ // (third local mangled entity used as a class-qualifier)
+ // cplus-dem FAIL
+ // icc CORE
+ verify_demangle("_ZNZN1N1fEiE1X1gE", "error code = -2: invalid mangled name");
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_ZNZN1N1fEiE1X1gEv",
+ "error code = -2: invalid mangled name");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // 5.1.7 Compression.
+ // typedef void T();
+ // struct S {};
+ // void f(T*, T (S::*)) { }
+ // Equivalent, void variance.
+ // standard text, not possible
+ // verify_demangle("_Z1fPFvvEM1SFvvE", "void f(T*, T (S::*))");
+ verify_demangle("_Z1fPFvvEM1SFvvE", "f(void (*)(), void (S::*)())");
+ // demangle("_Z1fPFvvEM1SFvvE", "f(void (*)(void), void (S::*)(void))");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // N::T<int, int>::mf(N::T<double, double>)
+ verify_demangle("_ZN1N1TIiiE2mfES0_IddE",
+ "N::T<int, int>::mf(N::T<double, double>)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // std::state
+ verify_demangle("_ZSt5state", "std::state");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Specific examples mentioned in the IA64 C++ ABI text
+// http://www.codesourcery.com/cxx-abi/abi.html#mangling
+int main()
+{
+ using namespace __gnu_test;
+
+ // std::_In::ward
+ verify_demangle("_ZNSt3_In4wardE", "std::_In::ward");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// c++/3111
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_Z1fKPFiiE", "f(int (* const)(int))");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// c++/3111
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ // icc FAIL
+ // verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
+ // "f(int[sizeof(N::A::f() const::foo())])");
+ verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
+ "f(int [sizeof (N::A::f() const::foo)])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+ // cplus-dem FAIL
+ verify_demangle("_Z1fA37_iPS_", "f(int [37], int (*) [37])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // Equivalent, but formatting difference in void argument.
+ // verify_demangle("_Z1fM1AFivEPS0_", "f(int (A::*)(void), int (*)(void))");
+ verify_demangle("_Z1fM1AFivEPS0_", "f(int (A::*)(), int (*)())");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z1fPFPA1_ivE", "f(int (*(*)()) [1])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z1fPKM1AFivE", "f(int (A::* const*)())");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z1jM1AFivEPS1_", "j(int (A::*)(), int (A::**)())");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z1sPA37_iPS0_", "s(int (*) [37], int (**) [37])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z3fooA30_A_i", "foo(int [30][])");
+
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z3kooPA28_A30_i", "koo(int (*) [28][30])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ // Equivalent as considered order-insensitive?
+ // standard text, icc FAIL
+ // verify_demangle("_ZlsRKU3fooU4bart1XS0_",
+ // "operator<<(X const foo bart&, X const foo bart)");
+ // new __cxa_demangle
+ verify_demangle("_ZlsRKU3fooU4bart1XS0_",
+ "operator<<(X bart foo const&, X bart)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ verify_demangle("_ZlsRKU3fooU4bart1XS2_",
+ "operator<<(X bart foo const&, X bart foo const)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem FAIL
+ verify_demangle("_Z1fM1AKFivE", "f(int (A::*)() const)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libstdc++/7986
+int main()
+{
+ using namespace __gnu_test;
+
+ // ICE on figmative float template parameters?
+ /*
+ demangle("_Z3absILd1c1f1496f8a44219EEvv", "void abs<3.14159e-173>()");
+ demangle("_Z3absILd40092acd9e83e426EEvv", "void abs<3.1459>()");
+ demangl("_Z3absILe08042191a6cc56a2fe117becEEvv", "void abs<1.234e-2345l>()");
+ demangle("_Z3absILf4016147bEEvv", "void abs<2.345f>()");
+ demangle("_Z3absILfc1800000EEvv", " void abs<-16f>()");
+ demangle("_Z3absILe804bfff8000000000000000EEvv", "void abs<-1l>()");
+ */
+
+ // template<int D> void abs(void) { };
+ // template void abs<11>(void);
+ // Equivalent, but formatting difference in void argument.
+ // verify_demangle("_Z3absILi11EEvv", "void abs<(int)11>()");
+ verify_demangle("_Z3absILi11EEvv", "void abs<11>()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Martin v. Loewis <martin@v.loewis.de>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// c++/8897
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+ template<typename T1>
+ struct A
+ {
+ template<typename T2>
+ operator T2();
+ };
+
+ A<float> a;
+ (int)a; <-- that function.
+ */
+ /*
+ Using "operator int()" is ambigious because that
+ could be either:
+
+ operator int();
+
+ or
+
+ template<typename T>
+ operator T();
+ with T = int.
+
+ - Carlo Wood
+ */
+ // cplus-dem FAIL
+ // icc FAIL
+ // new __cxa_demangle FAIL
+ verify_demangle("_ZN1AIfEcvT_IiEEv", "A<float>::operator int<int>()");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+ /*
+class libcw_app_ct {
+public:
+ void dummy(char const*) { }
+ template<typename T>
+ static void add_option(void (T::*)(char const*), char const*, char,
+ char const*, char const*);
+};
+
+template<typename T>
+ void libcw_app_ct::add_option(void (T::*)(char const*), char const*, char,
+ char const*, char const*)
+{ }
+
+void fn(void)
+{
+ // Instantiation.
+ libcw_app_ct::add_option(&libcw_app_ct::dummy, "", '\0', "", "");
+}
+*/
+verify_demangle("_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_",
+ "void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+namespace libcw {
+ namespace debug {
+ class memblk_types_manipulator_data_ct { };
+ }
+ template<typename T>
+ class omanip_id_tct { };
+ namespace {
+ template<typename T>
+ class compiler_bug_workaround {
+ public:
+ static std::vector<int> ids;
+ };
+ template<typename T>
+ std::vector<int> compiler_bug_workaround<T>::ids;
+ typedef std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > vector_t;
+ compiler_bug_workaround<vector_t> dummy;
+ }
+}
+
+void g(void)
+{
+ // Instantiation.
+ libcw::dummy.ids.size();
+}
+*/
+ verify_demangle("_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE", "guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+namespace libcw {
+ namespace _private_ {
+ class GlobalObject { public: void dummy(std::ostream&) const; };
+ }
+ namespace debug {
+ template<typename T>
+ class cwprint_using_tct { };
+ template<typename T>
+ cwprint_using_tct<T> cwprint_using(T const&, void (T::*)(std::ostream&) const);
+ }
+}
+
+void h(void)
+{
+ // Instantiation.
+ libcw::_private_::GlobalObject dummy;
+ (void)libcw::debug::cwprint_using(dummy, &libcw::_private_::GlobalObject::dummy);
+}
+*/
+ // cplus-dem CORE
+ verify_demangle("_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE", "libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+
+/*
+class timer_event_request_base_ct { };
+struct timer_greater { };
+
+void i(void)
+{
+ // Instantiation.
+ std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*>, timer_greater> dummy;
+ dummy.top();
+}
+*/
+ verify_demangle("_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv", "std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+struct memory_block_st { };
+namespace std {
+ template<typename T, typename R = T const&, typename P = T const*>
+ class _Deque_iterator {
+ public:
+ void operator==(_Deque_iterator const&) const { }
+ };
+}
+
+void j(void)
+{
+ // Instantiation.
+ std::_Deque_iterator<memory_block_st*> dummy;
+ dummy.operator==(dummy);
+}
+*/
+ verify_demangle("_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_",
+ "std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+struct option { };
+namespace std {
+ template<typename T1, typename T2>
+ class __normal_iterator {
+ public:
+ void operator-(__normal_iterator const&) const { }
+ };
+}
+
+void k(void)
+{
+ // Instantiation.
+ std::__normal_iterator<option const*, std::vector<option> > dummy;
+ dummy.operator-(dummy);
+}
+*/
+ verify_demangle("_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_",
+ "std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+
+/*
+
+namespace libcw {
+ namespace debug {
+ class no_alloc_checking_allocator { };
+ }
+}
+namespace std {
+ template<typename T>
+ class char_traits { };
+ template<typename T, class _Traits, class _Alloc>
+ class basic_string {
+ public:
+ template<typename T2>
+ char* _S_construct(T2, T2, _Alloc const&) { return (char*)0; }
+ };
+}
+
+void l(void)
+{
+ // Instantiation.
+ std::basic_string<char, std::char_traits<char>,
+ libcw::debug::no_alloc_checking_allocator> dummy;
+ char* cp;
+ libcw::debug::no_alloc_checking_allocator alloc;
+ dummy._S_construct(cp, cp, alloc);
+}
+*/
+ verify_demangle("_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_", "char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+class A { };
+typedef A const* a4_t[4];
+typedef a4_t* ap4_t;
+class C {
+public:
+ ap4_t c;
+};
+template<typename T1, typename T2, typename T3>
+ void f(T1, T2, T3, ap4_t, ap4_t (C::*)) { }
+
+void m(void)
+{
+ // Instantiation.
+ A a;
+ a4_t a4;
+ f(a, &a, static_cast<A const*>(&a), &a4, &C::c);
+}
+*/
+ // Equivalent, spacing differences with icc.
+ // cplus-dem FAIL
+ verify_demangle("_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_", "void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+
+/*
+
+void foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
+{
+}
+
+void n(void)
+{
+ int i0;
+ int* i1;
+ int** i2;
+ int*** i3;
+ int**** i4;
+ int***** i5;
+ int****** i6;
+ int******* i7;
+ int******** i8;
+ int********* i9;
+ int********** i10;
+ int*********** i11;
+ int************ i12;
+ int************* i13;
+ int************** i14;
+ int*************** i15;
+ foo(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15);
+}
+*/
+ // cplus-dem FAIL
+ verify_demangle("_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_", "foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+
+/*
+
+namespace std {
+ template<typename T1, typename T2, typename T3>
+ class D { };
+ D<A*, A*&, A**> d;
+ template<typename T1, typename T2, typename T3>
+ D<T3, T3&, T3*> B(T1, T1, T2, T3*) { return d; }
+}
+
+void o(void)
+{
+ std::D<A*, A* const&, A* const*> dummy1;
+ std::D<A*, A*&, A**> dummy2;
+ A* dummy3;
+ std::B(dummy1, dummy1, dummy2, &dummy3);
+}
+*/
+
+ verify_demangle("_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_", "std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)");
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem CORE
+ verify_demangle("_X11TransParseAddress",
+ "error code = -2: invalid mangled name");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+namespace std {
+ template<bool b, int i>
+ class __default_alloc_template { };
+
+ template<typename CHAR>
+ class string_char_traits { };
+
+ template<class BASIC_STRING, class ADAPTOR>
+ struct _Alloc_traits {
+ static char _S_instanceless;
+ };
+ template<class BASIC_STRING, class ADAPTOR>
+ char _Alloc_traits<BASIC_STRING, ADAPTOR>::_S_instanceless;
+}
+namespace libcw {
+ namespace debug {
+ namespace _private_ {
+ template<typename CHAR, class ALLOCATOR, bool b>
+ class allocator_adaptor { };
+ }
+ }
+}
+
+char x;
+void q(void)
+{
+ std::_Alloc_traits<
+ std::basic_string<
+ char,
+ std::string_char_traits<char>,
+ libcw::debug::_private_::allocator_adaptor<
+ char,
+ std::__default_alloc_template<false, 327664>,
+ true
+ >
+ >,
+ libcw::debug::_private_::allocator_adaptor<
+ std::basic_string<
+ char,
+ std::string_char_traits<char>,
+ libcw::debug::_private_::allocator_adaptor<
+ char,
+ std::__default_alloc_template<false, 327664>,
+ true
+ >
+ >,
+ std::__default_alloc_template<false, 327664>,
+ true
+ >
+ > dummy1;
+ x = dummy1._S_instanceless;
+}
+*/
+ // cplus-dem FAIL
+ verify_demangle("_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE","std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem CORE
+ verify_demangle("_GLOBAL__I__Z2fnv", "global constructors keyed to _Z2fnv");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+/*
+struct G {
+ int m(void) const { return 0; }
+ int n(void) { return 0; }
+};
+
+struct H {
+ int m(void) const { return 0; }
+ int n(void) { return 0; }
+};
+
+template<typename T>
+ class what
+ {
+ };
+
+template<typename T>
+ class what2
+ {
+ };
+
+void r(int (G::*)(void),
+ int (G::*)(void) const,
+ G, // S_
+ int (H::*)(void), // M1HS0_
+ int (G::*)(void), // S1_
+ what<G const>, // what<S2_>
+ what2<G const>, // what2<S8_>
+ int (G::*)(void) const // S3_
+{
+ G g;
+ what<G const> y;
+ what2<G const> y2;
+ r(&G::n, &G::m, g, &H::n, &G::n, y, y2, &G::m);
+}
+*/
+
+ // cplus-dem CORE
+verify_demangle("_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_",
+ "r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)");
+
+ return 0;
+}
--- /dev/null
+// 2003-10-14 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// libcwd tests
+int main()
+{
+ using namespace __gnu_test;
+
+ // cplus-dem CORE
+verify_demangle("_Z1xINiEE",
+ "error code = -2: invalid mangled name");
+
+ return 0;
+}
--- /dev/null
+// 2003-11-07 Carlo Wood <carlo@alinoe.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// Torturing by Carlo Wood.
+int main()
+{
+ using namespace __gnu_test;
+
+// 2003/11/07, libstdc++/12736
+verify_demangle("_Z3fooIA6_KiEvA9_KT_rVPrS4_",
+ "void foo<int const [6]>(int const [9][6], int restrict const (* volatile restrict) [9][6])");
+// 2003/11/12, libstdc++/12947
+verify_demangle("_Z1fILi5E1AEvN1CIXqugtT_Li0ELi1ELi2EEE1qE",
+ "void f<5, A>(C<(((5) > (0))) ? (1) : (2)>::q)");
+verify_demangle("_Z1fILi5EEvN1AIXcvimlT_Li22EEE1qE",
+ "void f<5>(A<(int)((5) * (22))>::q)");
+verify_demangle("_Z1fPFYPFiiEiE",
+ "f(int (*(*)(int))(int))");
+verify_demangle("_Z1fI1XENT_1tES2_",
+ "X::t f<X>(X::t)");
+verify_demangle("_Z1fILi5E1AEvN1CIXstN1T1tEEXszsrS2_1tEE1qE",
+ "void f<5, A>(C<sizeof (T::t), sizeof (T::t)>::q)");
+// 2003/12/03, libstdc++/13045
+verify_demangle("_Z1fILi1ELc120EEv1AIXplT_cviLd4028ae147ae147aeEEE",
+ "void f<1, (char)120>(A<(1) + ((int)((double)[4028ae147ae147ae]))>)");
+verify_demangle("_Z1fILi1ELc120EEv1AIXplT_cviLf3f800000EEE",
+ "void f<1, (char)120>(A<(1) + ((int)((float)[3f800000]))>)");
+verify_demangle("_Z9hairyfuncM1YKFPVPFrPA2_PM1XKFKPA3_ilEPcEiE",
+ "hairyfunc(int (* const (X::** (* restrict (* volatile* (Y::*)(int) const)(char*)) [2])(long) const) [3])");
+
+ return 0;
+}
--- /dev/null
+// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
+
+#include <testsuite_hooks.h>
+
+// old libiberty tests for gnu-v3
+int main()
+{
+ using namespace __gnu_test;
+ verify_demangle("St9bad_alloc", "std::bad_alloc");
+ return 0;
+}
--- /dev/null
+// { dg-do compile }
+// { dg-options "-x c" }
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// Must be compilable as "C"
+#include <cxxabi.h>
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // extern "C" function
- // extern "C" float f(void) { };
- // T f
- // f is ambiguous between "C" external name and internal built-in type
- // name. The ambiguity is resolved to the built-in type name.
- verify_demangle("f", "float");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // or variable "f"
- // int f;
- // B f
- // f is ambiguous between variable external name and internal built-in type
- // name. The ambiguity is resolved to the built-in type name.
- verify_demangle("f", "float");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // or a global namespace variable "f"
- /*
- namespace f
- {
- int f;
- }
- */
- verify_demangle("_ZN1f1fE", "f::f");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // void f() { };
- // int f() { };
- // verify_demangle("_Z1fv", "f(void)");
- verify_demangle("_Z1fv", "f()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // void f(int) { };
- // int f(int) { };
- verify_demangle("_Z1fi", "f(int)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // class bar { };
- // void foo(bar) { };
- verify_demangle("_Z3foo3bar", "foo(bar)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // class X { };
- // int operator%(X, X) { };
- verify_demangle("_Zrm1XS_", "operator%(X, X)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // int operator+(X&, X&) { };
- verify_demangle("_ZplR1XS0_", "operator+(X&, X&)"); // XXX
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // int operator<< (X const&, X const&) { };
- verify_demangle("_ZlsRK1XS1_", "operator<<(X const&, X const&)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- template<typename T>
- class Foo
- { static int bar; };
- int Foo<int[4]>::bar;
- */
- verify_demangle("_ZN3FooIA4_iE3barE", "Foo<int [4]>::bar");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // template<typename T> void f(int) { }
- // template void f<int>(int);
- // NB: the return type is always explicitly encoded for template
- // functions taking parameters.
- verify_demangle("_Z1fIiEvi", "void f<int>(int)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- class Duo { };
- template<typename T> void first(Duo) { }
- template void first<Duo>(Duo);
- */
- verify_demangle("_Z5firstI3DuoEvS0_", "void first<Duo>(Duo)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- class Duo { };
- template<typename T> void first(T obj) { }
- template void first(Duo);
- */
- verify_demangle("_Z5firstI3DuoEvT_", "void first<Duo>(Duo)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- typedef void fun(double);
- template<typename I, typename T, typename J> void foo() { }
- template void foo<int, fun, int>();
- */
- //demangle("_Z3fooIiPFidEiEvv", "void foo<int, int (*)(double), int>(void)");
- verify_demangle("_Z3fooIiFvdEiEvv", "void foo<int, void ()(double), int>()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- namespace N
- {
- int f;
- }
- */
- verify_demangle("_ZN1N1fE", "N::f");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- namespace System
- {
- struct Sound
- {
- int beep();
- };
-
- int Sound::beep() { };
- }
- */
- // verify_demangle("_ZN6System5Sound4beepEv", "System::Sound::beep(void)");
- verify_demangle("_ZN6System5Sound4beepEv", "System::Sound::beep()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- namespace Arena
- {
- int level;
- }
- */
- verify_demangle("_ZN5Arena5levelE", "Arena::level");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- /*
- template<typename T1, typename T2> struct Stack
- {
- static int level;
- int return_level() { return level; }
- };
- template struct Stack<int, int>;
- */
- verify_demangle("_ZN5StackIiiE5levelE", "Stack<int, int>::level");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_Z1fI1XEvPVN1AIT_E1TE", "void f<X>(A<X>::T volatile*)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_ZngILi42EEvN1AIXplT_Li2EEE1TE",
- "void operator-<42>(A<(42) + (2)>::T)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_Z4makeI7FactoryiET_IT0_Ev",
- "Factory<int> make<Factory, int>()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_Z4makeI7FactoryiET_IT0_Ev",
- "Factory<int> make<Factory, int>()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_Z3foo5Hello5WorldS0_S_",
- "foo(Hello, World, World, Hello)");
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_Z3fooPM2ABi", "foo(int AB::**)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // Equivalent
- // uncompressed, cp-dem
- // verify_demangle("_ZlsRSoRKSs", "operator<<(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)");
- // compressed (good!), new __cxa_demangle
- verify_demangle("_ZlsRSoRKSs",
- "operator<<(std::ostream&, std::string const&)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_ZTI7a_class", "typeinfo for a_class");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Examples given in the IA64 C++ ABI
-// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // 5.1.5 Type encodings.
- // int* volatile const restrict _far p;
- // cplus-dem FAIL
- // icc CORE
- // Equivalent as considered order-insensitive.
- // standard text
- // verify_demangle("U4_farrVKPi", "int* volatile const restrict _far");
- // new __cxa_demangle
- verify_demangle("U4_farrVKPi", "int* const volatile restrict _far");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // template<int I> void foo (int (&)[I + 1]) { };
- // template void foo<2> (int (&)[3]);
- // Equivalent, but formatting difference in void argument and parentheses.
- // icc, __cxa_demangle
- verify_demangle("_Z3fooILi2EEvRAplT_Li1E_i",
- "void foo<2>(int (&) [(2) + (1)])");
- // cplus-dem
- // verify_demangle("_Z3fooILi2EEvRAplT_Li1E_i",
- // "void foo<(int)2>(int (&) [((int)2)+((int)1)])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // struct A;
- // void f (void (A::*)() const) {}
- // cplus-dem FAIL
- // Equivalent, but formatting difference in void argument.
- verify_demangle("_Z1fM1AKFvvE", "f(void (A::*)() const)");
- // verify_demangle("_Z1fM1AKFvvE", "f(void (A::*)(void) const)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // void foo(char);
- verify_demangle("_Z3fooc", "foo(char)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // void foo(char);
- // template<void (&)(char)> struct CB { };
- // CB<foo> obj;
- // cplus-dem FAIL
- // standard text FAIL "CB<foo>"
- verify_demangle("2CBIL_Z3foocEE", "CB<foo(char)>");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // extern "C" bool IsEmpty(char *);
- // template<void (&)(char *)> struct CB;
- // CB<IsEmpty> is mangled as
- // cplus-dem FAIL
- verify_demangle("2CBIL_Z7IsEmptyEE", "CB<IsEmpty>");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // 5.1.6 Scope Encoding
- /*
- namespace N
- {
- inline char*
- f(int i)
- {
- static char *p = "Itanium C++ ABI"; // p = 1, "..." = 2
- {
- struct X
- { // X = 3
- void g() {}
- };
- }
- return p[i];
- }
- }
- */
- // encoding of N::f::p (first local mangled entity)
- verify_demangle("_ZZN1N1fEiE1p", "N::f(int)::p");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // encoding of N::f::"Itanium C++ ABI" (no discriminator)
- verify_demangle("_ZZN1N1fEiEs", "N::f(int)::string literal");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // encoding of N::f::X::g()
- // (third local mangled entity used as a class-qualifier)
- // cplus-dem FAIL
- // icc CORE
- verify_demangle("_ZNZN1N1fEiE1X1gE", "error code = -2: invalid mangled name");
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_ZNZN1N1fEiE1X1gEv",
- "error code = -2: invalid mangled name");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // 5.1.7 Compression.
- // typedef void T();
- // struct S {};
- // void f(T*, T (S::*)) { }
- // Equivalent, void variance.
- // standard text, not possible
- // verify_demangle("_Z1fPFvvEM1SFvvE", "void f(T*, T (S::*))");
- verify_demangle("_Z1fPFvvEM1SFvvE", "f(void (*)(), void (S::*)())");
- // demangle("_Z1fPFvvEM1SFvvE", "f(void (*)(void), void (S::*)(void))");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // N::T<int, int>::mf(N::T<double, double>)
- verify_demangle("_ZN1N1TIiiE2mfES0_IddE",
- "N::T<int, int>::mf(N::T<double, double>)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // std::state
- verify_demangle("_ZSt5state", "std::state");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Specific examples mentioned in the IA64 C++ ABI text
-// http://www.codesourcery.com/cxx-abi/abi.html#mangling
-int main()
-{
- using namespace __gnu_test;
-
- // std::_In::ward
- verify_demangle("_ZNSt3_In4wardE", "std::_In::ward");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// c++/3111
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_Z1fKPFiiE", "f(int (* const)(int))");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// c++/3111
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- // icc FAIL
- // verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
- // "f(int[sizeof(N::A::f() const::foo())])");
- verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
- "f(int [sizeof (N::A::f() const::foo)])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
- // cplus-dem FAIL
- verify_demangle("_Z1fA37_iPS_", "f(int [37], int (*) [37])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // Equivalent, but formatting difference in void argument.
- // verify_demangle("_Z1fM1AFivEPS0_", "f(int (A::*)(void), int (*)(void))");
- verify_demangle("_Z1fM1AFivEPS0_", "f(int (A::*)(), int (*)())");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z1fPFPA1_ivE", "f(int (*(*)()) [1])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z1fPKM1AFivE", "f(int (A::* const*)())");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z1jM1AFivEPS1_", "j(int (A::*)(), int (A::**)())");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z1sPA37_iPS0_", "s(int (*) [37], int (**) [37])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z3fooA30_A_i", "foo(int [30][])");
-
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z3kooPA28_A30_i", "koo(int (*) [28][30])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- // Equivalent as considered order-insensitive?
- // standard text, icc FAIL
- // verify_demangle("_ZlsRKU3fooU4bart1XS0_",
- // "operator<<(X const foo bart&, X const foo bart)");
- // new __cxa_demangle
- verify_demangle("_ZlsRKU3fooU4bart1XS0_",
- "operator<<(X bart foo const&, X bart)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- verify_demangle("_ZlsRKU3fooU4bart1XS2_",
- "operator<<(X bart foo const&, X bart foo const)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem FAIL
- verify_demangle("_Z1fM1AKFivE", "f(int (A::*)() const)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libstdc++/7986
-int main()
-{
- using namespace __gnu_test;
-
- // ICE on figmative float template parameters?
- /*
- demangle("_Z3absILd1c1f1496f8a44219EEvv", "void abs<3.14159e-173>()");
- demangle("_Z3absILd40092acd9e83e426EEvv", "void abs<3.1459>()");
- demangl("_Z3absILe08042191a6cc56a2fe117becEEvv", "void abs<1.234e-2345l>()");
- demangle("_Z3absILf4016147bEEvv", "void abs<2.345f>()");
- demangle("_Z3absILfc1800000EEvv", " void abs<-16f>()");
- demangle("_Z3absILe804bfff8000000000000000EEvv", "void abs<-1l>()");
- */
-
- // template<int D> void abs(void) { };
- // template void abs<11>(void);
- // Equivalent, but formatting difference in void argument.
- // verify_demangle("_Z3absILi11EEvv", "void abs<(int)11>()");
- verify_demangle("_Z3absILi11EEvv", "void abs<11>()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Martin v. Loewis <martin@v.loewis.de>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// c++/8897
-int main()
-{
- using namespace __gnu_test;
-
- /*
- template<typename T1>
- struct A
- {
- template<typename T2>
- operator T2();
- };
-
- A<float> a;
- (int)a; <-- that function.
- */
- /*
- Using "operator int()" is ambigious because that
- could be either:
-
- operator int();
-
- or
-
- template<typename T>
- operator T();
- with T = int.
-
- - Carlo Wood
- */
- // cplus-dem FAIL
- // icc FAIL
- // new __cxa_demangle FAIL
- verify_demangle("_ZN1AIfEcvT_IiEEv", "A<float>::operator int<int>()");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
- /*
-class libcw_app_ct {
-public:
- void dummy(char const*) { }
- template<typename T>
- static void add_option(void (T::*)(char const*), char const*, char,
- char const*, char const*);
-};
-
-template<typename T>
- void libcw_app_ct::add_option(void (T::*)(char const*), char const*, char,
- char const*, char const*)
-{ }
-
-void fn(void)
-{
- // Instantiation.
- libcw_app_ct::add_option(&libcw_app_ct::dummy, "", '\0', "", "");
-}
-*/
-verify_demangle("_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_",
- "void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-namespace libcw {
- namespace debug {
- class memblk_types_manipulator_data_ct { };
- }
- template<typename T>
- class omanip_id_tct { };
- namespace {
- template<typename T>
- class compiler_bug_workaround {
- public:
- static std::vector<int> ids;
- };
- template<typename T>
- std::vector<int> compiler_bug_workaround<T>::ids;
- typedef std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > vector_t;
- compiler_bug_workaround<vector_t> dummy;
- }
-}
-
-void g(void)
-{
- // Instantiation.
- libcw::dummy.ids.size();
-}
-*/
- verify_demangle("_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE", "guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-namespace libcw {
- namespace _private_ {
- class GlobalObject { public: void dummy(std::ostream&) const; };
- }
- namespace debug {
- template<typename T>
- class cwprint_using_tct { };
- template<typename T>
- cwprint_using_tct<T> cwprint_using(T const&, void (T::*)(std::ostream&) const);
- }
-}
-
-void h(void)
-{
- // Instantiation.
- libcw::_private_::GlobalObject dummy;
- (void)libcw::debug::cwprint_using(dummy, &libcw::_private_::GlobalObject::dummy);
-}
-*/
- // cplus-dem CORE
- verify_demangle("_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE", "libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-
-/*
-class timer_event_request_base_ct { };
-struct timer_greater { };
-
-void i(void)
-{
- // Instantiation.
- std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*>, timer_greater> dummy;
- dummy.top();
-}
-*/
- verify_demangle("_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv", "std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-struct memory_block_st { };
-namespace std {
- template<typename T, typename R = T const&, typename P = T const*>
- class _Deque_iterator {
- public:
- void operator==(_Deque_iterator const&) const { }
- };
-}
-
-void j(void)
-{
- // Instantiation.
- std::_Deque_iterator<memory_block_st*> dummy;
- dummy.operator==(dummy);
-}
-*/
- verify_demangle("_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_",
- "std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-struct option { };
-namespace std {
- template<typename T1, typename T2>
- class __normal_iterator {
- public:
- void operator-(__normal_iterator const&) const { }
- };
-}
-
-void k(void)
-{
- // Instantiation.
- std::__normal_iterator<option const*, std::vector<option> > dummy;
- dummy.operator-(dummy);
-}
-*/
- verify_demangle("_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_",
- "std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-
-/*
-
-namespace libcw {
- namespace debug {
- class no_alloc_checking_allocator { };
- }
-}
-namespace std {
- template<typename T>
- class char_traits { };
- template<typename T, class _Traits, class _Alloc>
- class basic_string {
- public:
- template<typename T2>
- char* _S_construct(T2, T2, _Alloc const&) { return (char*)0; }
- };
-}
-
-void l(void)
-{
- // Instantiation.
- std::basic_string<char, std::char_traits<char>,
- libcw::debug::no_alloc_checking_allocator> dummy;
- char* cp;
- libcw::debug::no_alloc_checking_allocator alloc;
- dummy._S_construct(cp, cp, alloc);
-}
-*/
- verify_demangle("_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_", "char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-class A { };
-typedef A const* a4_t[4];
-typedef a4_t* ap4_t;
-class C {
-public:
- ap4_t c;
-};
-template<typename T1, typename T2, typename T3>
- void f(T1, T2, T3, ap4_t, ap4_t (C::*)) { }
-
-void m(void)
-{
- // Instantiation.
- A a;
- a4_t a4;
- f(a, &a, static_cast<A const*>(&a), &a4, &C::c);
-}
-*/
- // Equivalent, spacing differences with icc.
- // cplus-dem FAIL
- verify_demangle("_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_", "void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-
-/*
-
-void foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
-{
-}
-
-void n(void)
-{
- int i0;
- int* i1;
- int** i2;
- int*** i3;
- int**** i4;
- int***** i5;
- int****** i6;
- int******* i7;
- int******** i8;
- int********* i9;
- int********** i10;
- int*********** i11;
- int************ i12;
- int************* i13;
- int************** i14;
- int*************** i15;
- foo(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15);
-}
-*/
- // cplus-dem FAIL
- verify_demangle("_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_", "foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-
-/*
-
-namespace std {
- template<typename T1, typename T2, typename T3>
- class D { };
- D<A*, A*&, A**> d;
- template<typename T1, typename T2, typename T3>
- D<T3, T3&, T3*> B(T1, T1, T2, T3*) { return d; }
-}
-
-void o(void)
-{
- std::D<A*, A* const&, A* const*> dummy1;
- std::D<A*, A*&, A**> dummy2;
- A* dummy3;
- std::B(dummy1, dummy1, dummy2, &dummy3);
-}
-*/
-
- verify_demangle("_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_", "std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)");
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem CORE
- verify_demangle("_X11TransParseAddress",
- "error code = -2: invalid mangled name");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-namespace std {
- template<bool b, int i>
- class __default_alloc_template { };
-
- template<typename CHAR>
- class string_char_traits { };
-
- template<class BASIC_STRING, class ADAPTOR>
- struct _Alloc_traits {
- static char _S_instanceless;
- };
- template<class BASIC_STRING, class ADAPTOR>
- char _Alloc_traits<BASIC_STRING, ADAPTOR>::_S_instanceless;
-}
-namespace libcw {
- namespace debug {
- namespace _private_ {
- template<typename CHAR, class ALLOCATOR, bool b>
- class allocator_adaptor { };
- }
- }
-}
-
-char x;
-void q(void)
-{
- std::_Alloc_traits<
- std::basic_string<
- char,
- std::string_char_traits<char>,
- libcw::debug::_private_::allocator_adaptor<
- char,
- std::__default_alloc_template<false, 327664>,
- true
- >
- >,
- libcw::debug::_private_::allocator_adaptor<
- std::basic_string<
- char,
- std::string_char_traits<char>,
- libcw::debug::_private_::allocator_adaptor<
- char,
- std::__default_alloc_template<false, 327664>,
- true
- >
- >,
- std::__default_alloc_template<false, 327664>,
- true
- >
- > dummy1;
- x = dummy1._S_instanceless;
-}
-*/
- // cplus-dem FAIL
- verify_demangle("_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE","std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem CORE
- verify_demangle("_GLOBAL__I__Z2fnv", "global constructors keyed to _Z2fnv");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
-/*
-struct G {
- int m(void) const { return 0; }
- int n(void) { return 0; }
-};
-
-struct H {
- int m(void) const { return 0; }
- int n(void) { return 0; }
-};
-
-template<typename T>
- class what
- {
- };
-
-template<typename T>
- class what2
- {
- };
-
-void r(int (G::*)(void),
- int (G::*)(void) const,
- G, // S_
- int (H::*)(void), // M1HS0_
- int (G::*)(void), // S1_
- what<G const>, // what<S2_>
- what2<G const>, // what2<S8_>
- int (G::*)(void) const // S3_
-{
- G g;
- what<G const> y;
- what2<G const> y2;
- r(&G::n, &G::m, g, &H::n, &G::n, y, y2, &G::m);
-}
-*/
-
- // cplus-dem CORE
-verify_demangle("_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_",
- "r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)");
-
- return 0;
-}
+++ /dev/null
-// 2003-10-14 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// libcwd tests
-int main()
-{
- using namespace __gnu_test;
-
- // cplus-dem CORE
-verify_demangle("_Z1xINiEE",
- "error code = -2: invalid mangled name");
-
- return 0;
-}
+++ /dev/null
-// 2003-11-07 Carlo Wood <carlo@alinoe.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// Torturing by Carlo Wood.
-int main()
-{
- using namespace __gnu_test;
-
-// 2003/11/07, libstdc++/12736
-verify_demangle("_Z3fooIA6_KiEvA9_KT_rVPrS4_",
- "void foo<int const [6]>(int const [9][6], int restrict const (* volatile restrict) [9][6])");
-// 2003/11/12, libstdc++/12947
-verify_demangle("_Z1fILi5E1AEvN1CIXqugtT_Li0ELi1ELi2EEE1qE",
- "void f<5, A>(C<(((5) > (0))) ? (1) : (2)>::q)");
-verify_demangle("_Z1fILi5EEvN1AIXcvimlT_Li22EEE1qE",
- "void f<5>(A<(int)((5) * (22))>::q)");
-verify_demangle("_Z1fPFYPFiiEiE",
- "f(int (*(*)(int))(int))");
-verify_demangle("_Z1fI1XENT_1tES2_",
- "X::t f<X>(X::t)");
-verify_demangle("_Z1fILi5E1AEvN1CIXstN1T1tEEXszsrS2_1tEE1qE",
- "void f<5, A>(C<sizeof (T::t), sizeof (T::t)>::q)");
-// 2003/12/03, libstdc++/13045
-verify_demangle("_Z1fILi1ELc120EEv1AIXplT_cviLd4028ae147ae147aeEEE",
- "void f<1, (char)120>(A<(1) + ((int)((double)[4028ae147ae147ae]))>)");
-verify_demangle("_Z1fILi1ELc120EEv1AIXplT_cviLf3f800000EEE",
- "void f<1, (char)120>(A<(1) + ((int)((float)[3f800000]))>)");
-verify_demangle("_Z9hairyfuncM1YKFPVPFrPA2_PM1XKFKPA3_ilEPcEiE",
- "hairyfunc(int (* const (X::** (* restrict (* volatile* (Y::*)(int) const)(char*)) [2])(long) const) [3])");
-
- return 0;
-}
+++ /dev/null
-// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
-
-// Copyright (C) 2003 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library. This library is free
-// software; you can redistribute it and/or modify it under the
-// terms of the GNU General Public License as published by the
-// Free Software Foundation; either version 2, or (at your option)
-// any later version.
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License along
-// with this library; see the file COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
-
-#include <testsuite_hooks.h>
-
-// old libiberty tests for gnu-v3
-int main()
-{
- using namespace __gnu_test;
- verify_demangle("St9bad_alloc", "std::bad_alloc");
- return 0;
-}
}
}
+ set select_compile "v3_target_compile"
set options ""
if { $extra_tool_flags != "" } {
verbose -log "extra_tool_flags are:"
if { [string first "-x c" $extra_tool_flags ] != -1 } {
# Short-circut a bunch of complicated goo here for the
# special case of compiling a test file as a "C" file, not
- # as C++: just use target_compile, instead of the usual
- # gimmicks.
+ # as C++. Why? So -nostdc++ doesn't trip us up. So all the
+ # extra object files don't trip us up. So automatically
+ # linking in libstdc++ doesn't happen. So CXXFLAGS don't
+ # error.
verbose -log "compiling and executing as C, not C++"
- set compile_type "executable"
- set output_file "./[file rootname [file tail $prog]].exe"
- remote_file build delete $output_file;
- lappend options "additional_flags=$extra_tool_flags"
- set comp_output [target_compile "$prog" "$output_file" "$compile_type" $options];
- set comp_output [ prune_g++_output $comp_output ];
- return [list $comp_output $output_file]
+
+ set edit_tool_flags $extra_tool_flags
+ regsub -all ".x c" $edit_tool_flags "" edit_tool_flags
+ lappend options "additional_flags=$edit_tool_flags"
+
+ set select_compile "v3_target_compile_as_c"
} else {
lappend options "additional_flags=$extra_tool_flags"
}
# There is a libstdc++_compile made for us by default (via the tool-
# and-target file), but the defaults are lacking in goodness.
- set comp_output [v3_target_compile "$prog" "$output_file" "$compile_type" $options];
+ set comp_output [$select_compile "$prog" "$output_file" "$compile_type" $options];
set comp_output [ prune_g++_output $comp_output ];
return [list $comp_output $output_file]
global cxxflags
global cxxldflags
global includes
- global blddir
global v3-test_objs
if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
# Flag setting based on type argument.
if { $type == "executable" } {
# Link the support objects into executables.
- set cxx_final [concat $cxx_final ${v3-test_objs}]
set cxx_final [concat $cxx_final $cxxldflags]
+ # lappend options "additional_flags=./libtestc++.a"
+ set cxx_final [concat $cxx_final ${v3-test_objs}]
} else {
if { $type == "sharedlib" } {
# Don't link in anything.
}
+# Called from libstdc++-dg-test above, but only for "C" compilation.
+# Calls back into system's target_compile to actually do the work.
+proc v3_target_compile_as_c { source dest type options } {
+ global gluefile
+ global wrap_flags
+ global includes
+
+ if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
+ lappend options "libs=${gluefile}"
+ lappend options "ldflags=${wrap_flags}"
+ }
+
+ set tname [target_info name]
+ set cc_final [board_info $tname compiler]
+ set cxxlibglossflags [libgloss_link_flags]
+ set cc_final [concat $cc_final $cxxlibglossflags]
+ set cc_final [concat $cc_final $includes]
+ regsub -all ".nostdinc.." $cc_final "" cc_final
+
+ lappend options "compiler=$cc_final"
+ lappend options "timeout=600"
+
+ return [target_compile $source $dest $type $options]
+}
+
# Build the support objects linked in with the libstdc++ tests. In
# addition, set v3-wchar_t, v3-threads, v3-test_objs, and v3-symver
# appropriately.
} else {
# Find directories that might have tests.
set subdirs [glob "$srcdir/\[0-9\]\[0-9\]*"]
+ lappend subdirs "$srcdir/abi"
lappend subdirs "$srcdir/backward"
- lappend subdirs "$srcdir/demangle"
lappend subdirs "$srcdir/ext"
lappend subdirs "$srcdir/performance"
- lappend subdirs "$srcdir/tr1"
lappend subdirs "$srcdir/thread"
+ lappend subdirs "$srcdir/tr1"
verbose "subdirs are $subdirs"
# Find all the tests.