From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- libstdc++-v3/testsuite/abi/30586.cc | 24 ++++++ .../testsuite/abi/cxx_runtime_only_linkage.cc | 25 +++++++ .../testsuite/abi/demangle/abi_examples/01.cc | 38 ++++++++++ .../testsuite/abi/demangle/abi_examples/02.cc | 38 ++++++++++ .../testsuite/abi/demangle/abi_examples/03.cc | 40 ++++++++++ .../testsuite/abi/demangle/abi_examples/04.cc | 36 +++++++++ .../testsuite/abi/demangle/abi_examples/05.cc | 35 +++++++++ .../testsuite/abi/demangle/abi_examples/06.cc | 35 +++++++++ .../testsuite/abi/demangle/abi_examples/07.cc | 35 +++++++++ .../testsuite/abi/demangle/abi_examples/08.cc | 34 +++++++++ .../testsuite/abi/demangle/abi_examples/09.cc | 34 +++++++++ .../testsuite/abi/demangle/abi_examples/10.cc | 39 ++++++++++ .../testsuite/abi/demangle/abi_examples/11.cc | 37 +++++++++ .../testsuite/abi/demangle/abi_examples/12.cc | 38 ++++++++++ .../testsuite/abi/demangle/abi_examples/13.cc | 38 ++++++++++ .../testsuite/abi/demangle/abi_examples/14.cc | 39 ++++++++++ .../testsuite/abi/demangle/abi_examples/15.cc | 39 ++++++++++ .../testsuite/abi/demangle/abi_examples/16.cc | 45 +++++++++++ .../testsuite/abi/demangle/abi_examples/17.cc | 39 ++++++++++ .../testsuite/abi/demangle/abi_examples/18.cc | 41 ++++++++++ .../testsuite/abi/demangle/abi_examples/19.cc | 33 ++++++++ .../testsuite/abi/demangle/abi_examples/20.cc | 34 +++++++++ .../testsuite/abi/demangle/abi_examples/21.cc | 34 +++++++++ .../testsuite/abi/demangle/abi_examples/22.cc | 34 +++++++++ .../testsuite/abi/demangle/abi_examples/23.cc | 33 ++++++++ .../testsuite/abi/demangle/abi_examples/24.cc | 33 ++++++++ .../testsuite/abi/demangle/abi_examples/25.cc | 38 ++++++++++ .../testsuite/abi/demangle/abi_examples/26.cc | 33 ++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc | 41 ++++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc | 41 ++++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc | 38 ++++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc | 34 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc | 38 ++++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc | 37 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc | 52 +++++++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc | 34 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc | 36 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc | 34 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc | 41 ++++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc | 35 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc | 34 +++++++++ libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc | 34 +++++++++ libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc | 31 ++++++++ .../testsuite/abi/demangle/regression/3111-1.cc | 32 ++++++++ .../testsuite/abi/demangle/regression/3111-2.cc | 37 +++++++++ .../testsuite/abi/demangle/regression/7986-01.cc | 32 ++++++++ .../testsuite/abi/demangle/regression/7986-02.cc | 34 +++++++++ .../testsuite/abi/demangle/regression/7986-03.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-04.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-05.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-06.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-07.cc | 34 +++++++++ .../testsuite/abi/demangle/regression/7986-08.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-09.cc | 39 ++++++++++ .../testsuite/abi/demangle/regression/7986-10.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-11.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/7986-12.cc | 46 ++++++++++++ .../testsuite/abi/demangle/regression/7986.cc | 31 ++++++++ .../testsuite/abi/demangle/regression/8897.cc | 60 +++++++++++++++ .../testsuite/abi/demangle/regression/cw-01.cc | 53 +++++++++++++ .../testsuite/abi/demangle/regression/cw-02.cc | 58 +++++++++++++++ .../testsuite/abi/demangle/regression/cw-03.cc | 53 +++++++++++++ .../testsuite/abi/demangle/regression/cw-04.cc | 44 +++++++++++ .../testsuite/abi/demangle/regression/cw-05.cc | 50 +++++++++++++ .../testsuite/abi/demangle/regression/cw-06.cc | 50 +++++++++++++ .../testsuite/abi/demangle/regression/cw-07.cc | 61 +++++++++++++++ .../testsuite/abi/demangle/regression/cw-08.cc | 53 +++++++++++++ .../testsuite/abi/demangle/regression/cw-09.cc | 61 +++++++++++++++ .../testsuite/abi/demangle/regression/cw-10.cc | 51 +++++++++++++ .../testsuite/abi/demangle/regression/cw-11.cc | 34 +++++++++ .../testsuite/abi/demangle/regression/cw-12.cc | 87 ++++++++++++++++++++++ .../testsuite/abi/demangle/regression/cw-13.cc | 33 ++++++++ .../testsuite/abi/demangle/regression/cw-14.cc | 71 ++++++++++++++++++ .../testsuite/abi/demangle/regression/cw-15.cc | 34 +++++++++ .../testsuite/abi/demangle/regression/cw-16.cc | 52 +++++++++++++ .../testsuite/abi/demangle/regression/old.cc | 30 ++++++++ libstdc++-v3/testsuite/abi/header_cxxabi.c | 21 ++++++ libstdc++-v3/testsuite/abi/pr42230.cc | 16 ++++ 78 files changed, 3049 insertions(+) create mode 100644 libstdc++-v3/testsuite/abi/30586.cc create mode 100644 libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/7986.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/8897.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc create mode 100644 libstdc++-v3/testsuite/abi/demangle/regression/old.cc create mode 100644 libstdc++-v3/testsuite/abi/header_cxxabi.c create mode 100644 libstdc++-v3/testsuite/abi/pr42230.cc (limited to 'libstdc++-v3/testsuite/abi') diff --git a/libstdc++-v3/testsuite/abi/30586.cc b/libstdc++-v3/testsuite/abi/30586.cc new file mode 100644 index 000000000..8834f168a --- /dev/null +++ b/libstdc++-v3/testsuite/abi/30586.cc @@ -0,0 +1,24 @@ +// { dg-do compile } + +// Copyright (C) 2007, 2009 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 3, 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 COPYING3. If not see +// . + +#include + +// libstdc++/30586 +struct abi; +void foo(abi&); diff --git a/libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc b/libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc new file mode 100644 index 000000000..716fdbc85 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc @@ -0,0 +1,25 @@ +// { dg-do link } +// { dg-options "-x c -lsupc++" } +// Copyright (C) 2006, 2007, 2009 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 3, 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 COPYING3. If not see +// . + +// Must be able to link C++ apps compiled with gcc and libsupc++. + +int main() +{ + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc new file mode 100644 index 000000000..45c012d0f --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2005, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc new file mode 100644 index 000000000..c20f44a2a --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2005, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc new file mode 100644 index 000000000..1006d2b8d --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc @@ -0,0 +1,40 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc new file mode 100644 index 000000000..553f6b86d --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc @@ -0,0 +1,36 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc new file mode 100644 index 000000000..0db11ea61 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc @@ -0,0 +1,35 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc new file mode 100644 index 000000000..445b985b5 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc @@ -0,0 +1,35 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc new file mode 100644 index 000000000..e2765e42a --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc @@ -0,0 +1,35 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc new file mode 100644 index 000000000..15b5c9b7e --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc new file mode 100644 index 000000000..db1705155 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc new file mode 100644 index 000000000..6d0e06fef --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc @@ -0,0 +1,39 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// Examples given in the IA64 C++ ABI +// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling +int main() +{ + using namespace __gnu_test; + + /* + template + class Foo + { static int bar; }; + int Foo::bar; + */ + verify_demangle("_ZN3FooIA4_iE3barE", "Foo::bar"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc new file mode 100644 index 000000000..03bb29ec7 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc @@ -0,0 +1,37 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// Examples given in the IA64 C++ ABI +// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling +int main() +{ + using namespace __gnu_test; + + // template void f(int) { } + // template void f(int); + // NB: the return type is always explicitly encoded for template + // functions taking parameters. + verify_demangle("_Z1fIiEvi", "void f(int)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc new file mode 100644 index 000000000..c01255be8 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 void first(Duo) { } + template void first(Duo); + */ + verify_demangle("_Z5firstI3DuoEvS0_", "void first(Duo)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc new file mode 100644 index 000000000..6da15c32f --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 void first(T obj) { } + template void first(Duo); + */ + verify_demangle("_Z5firstI3DuoEvT_", "void first(Duo)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc new file mode 100644 index 000000000..98b998786 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc @@ -0,0 +1,39 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 void foo() { } + template void foo(); + */ + //demangle("_Z3fooIiPFidEiEvv", "void foo(void)"); + verify_demangle("_Z3fooIiFvdEiEvv", "void foo()"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc new file mode 100644 index 000000000..d1909bbab --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc @@ -0,0 +1,39 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc new file mode 100644 index 000000000..2433f51bd --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc @@ -0,0 +1,45 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc new file mode 100644 index 000000000..7431dbd08 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc @@ -0,0 +1,39 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc new file mode 100644 index 000000000..3098e306b --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc @@ -0,0 +1,41 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// Examples given in the IA64 C++ ABI +// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling +int main() +{ + using namespace __gnu_test; + + /* + template struct Stack + { + static int level; + int return_level() { return level; } + }; + template struct Stack; + */ + verify_demangle("_ZN5StackIiiE5levelE", "Stack::level"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc new file mode 100644 index 000000000..bafb9069d --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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(A::T volatile*)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc new file mode 100644 index 000000000..cb9f58c44 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc new file mode 100644 index 000000000..a3689d450 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 make()"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc new file mode 100644 index 000000000..a3689d450 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 make()"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc new file mode 100644 index 000000000..0b404cc84 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc new file mode 100644 index 000000000..1a70c763d --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc new file mode 100644 index 000000000..ba4c3aa4e --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 >&, std::basic_string, std::allocator > const&)"); + // compressed (good!), new __cxa_demangle + verify_demangle("_ZlsRSoRKSs", + "operator<<(std::ostream&, std::string const&)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc b/libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc new file mode 100644 index 000000000..b55852795 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc new file mode 100644 index 000000000..1cfde0f73 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc @@ -0,0 +1,41 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc new file mode 100644 index 000000000..e59bd1418 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc @@ -0,0 +1,41 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc new file mode 100644 index 000000000..50318d1ec --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc new file mode 100644 index 000000000..d153bf058 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc new file mode 100644 index 000000000..e420e501c --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc @@ -0,0 +1,38 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 struct CB { }; + // CB obj; + // cplus-dem FAIL + // standard text FAIL "CB" + verify_demangle("2CBIL_Z3foocEE", "CB"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc new file mode 100644 index 000000000..3391e2850 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc @@ -0,0 +1,37 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 struct CB; + // CB is mangled as + // cplus-dem FAIL + verify_demangle("2CBIL_Z7IsEmptyEE", "CB"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc new file mode 100644 index 000000000..9759a198b --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc @@ -0,0 +1,52 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc new file mode 100644 index 000000000..67bf817b9 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc new file mode 100644 index 000000000..714a76d63 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc @@ -0,0 +1,36 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc new file mode 100644 index 000000000..6207b815e --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc new file mode 100644 index 000000000..e36ee88a3 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc @@ -0,0 +1,41 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc new file mode 100644 index 000000000..bc1746b12 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc @@ -0,0 +1,35 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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::mf(N::T) + verify_demangle("_ZN1N1TIiiE2mfES0_IddE", + "N::T::mf(N::T)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc new file mode 100644 index 000000000..08b802ed9 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc b/libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc new file mode 100644 index 000000000..fde74b98c --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc b/libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc new file mode 100644 index 000000000..caa0aff4e --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc @@ -0,0 +1,31 @@ +// 2007-06-28 Douglas Gregor + +// Copyright (C) 2007, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +int main() +{ + using namespace __gnu_test; + + verify_demangle("_Z1fOi", "f(int&&)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc b/libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc new file mode 100644 index 000000000..d29f2a4a2 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc @@ -0,0 +1,32 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// c++/3111 +int main() +{ + using namespace __gnu_test; + + verify_demangle("_Z1fKPFiiE", "f(int (* const)(int))"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc b/libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc new file mode 100644 index 000000000..900a1b945 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc @@ -0,0 +1,37 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc new file mode 100644 index 000000000..16f6d5c14 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc @@ -0,0 +1,32 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + // cplus-dem FAIL + verify_demangle("_Z1fA37_iPS_", "f(int [37], int (*) [37])"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc new file mode 100644 index 000000000..b4887dae9 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc new file mode 100644 index 000000000..92f5e7dc0 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z1fPFPA1_ivE", "f(int (*(*)()) [1])"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc new file mode 100644 index 000000000..5e98ae170 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z1fPKM1AFivE", "f(int (A::* const*)())"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc new file mode 100644 index 000000000..bbaf34ea2 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z1jM1AFivEPS1_", "j(int (A::*)(), int (A::**)())"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc new file mode 100644 index 000000000..19878bf1a --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z1sPA37_iPS0_", "s(int (*) [37], int (**) [37])"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc new file mode 100644 index 000000000..fd52c5b41 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc @@ -0,0 +1,34 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z3fooA30_A_i", "foo(int [30][])"); + + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc new file mode 100644 index 000000000..c136c8cb0 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z3kooPA28_A30_i", "koo(int (*) [28][30])"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc new file mode 100644 index 000000000..0364a8390 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc @@ -0,0 +1,39 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc new file mode 100644 index 000000000..4cc58409b --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + verify_demangle("_ZlsRKU3fooU4bart1XS2_", + "operator<<(X bart foo const&, X bart foo const)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc new file mode 100644 index 000000000..9642539ac --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc @@ -0,0 +1,33 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libstdc++/7986 +int main() +{ + using namespace __gnu_test; + + // cplus-dem FAIL + verify_demangle("_Z1fM1AKFivE", "f(int (A::*)() const)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc new file mode 100644 index 000000000..7e70b316a --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc @@ -0,0 +1,46 @@ +// 2003-02-26 Benjamin Kosnik + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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 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; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/7986.cc b/libstdc++-v3/testsuite/abi/demangle/regression/7986.cc new file mode 100644 index 000000000..70f9c001e --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/7986.cc @@ -0,0 +1,31 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libcwd tests +int main() +{ + using namespace __gnu_test; + + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/8897.cc b/libstdc++-v3/testsuite/abi/demangle/regression/8897.cc new file mode 100644 index 000000000..e4ad4013c --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/8897.cc @@ -0,0 +1,60 @@ +// 2003-02-26 Martin v. Loewis + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// c++/8897 +int main() +{ + using namespace __gnu_test; + + /* + template + struct A + { + template + operator T2(); + }; + + A a; + (int)a; <-- that function. + */ + /* + Using "operator int()" is ambigious because that + could be either: + + operator int(); + + or + + template + operator T(); + with T = int. + + - Carlo Wood + */ + // cplus-dem FAIL + // icc FAIL + // new __cxa_demangle FAIL + verify_demangle("_ZN1AIfEcvT_IiEEv", "A::operator int()"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc new file mode 100644 index 000000000..f4960ebe4 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc @@ -0,0 +1,53 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libcwd tests +int main() +{ + using namespace __gnu_test; + + /* +class libcw_app_ct { +public: + void dummy(char const*) { } + template + static void add_option(void (T::*)(char const*), char const*, char, + char const*, char const*); +}; + +template + 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(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc new file mode 100644 index 000000000..ad4ecf03d --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc @@ -0,0 +1,58 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libcwd tests +int main() +{ + using namespace __gnu_test; + +/* +namespace libcw { + namespace debug { + class memblk_types_manipulator_data_ct { }; + } + template + class omanip_id_tct { }; + namespace { + template + class compiler_bug_workaround { + public: + static std::vector ids; + }; + template + std::vector compiler_bug_workaround::ids; + typedef std::vector > vector_t; + compiler_bug_workaround 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::allocator > > >::ids"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc new file mode 100644 index 000000000..9d9c0945a --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc @@ -0,0 +1,53 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libcwd tests +int main() +{ + using namespace __gnu_test; + +/* +namespace libcw { + namespace _private_ { + class GlobalObject { public: void dummy(std::ostream&) const; }; + } + namespace debug { + template + class cwprint_using_tct { }; + template + cwprint_using_tct 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::debug::cwprint_using(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc new file mode 100644 index 000000000..1bf669782 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc @@ -0,0 +1,44 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// 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_greater> dummy; + dummy.top(); +} +*/ + verify_demangle("_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv", "std::priority_queue >, timer_greater>::top() const"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc new file mode 100644 index 000000000..b5b175811 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc @@ -0,0 +1,50 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libcwd tests +int main() +{ + using namespace __gnu_test; + +/* +struct memory_block_st { }; +namespace std { + template + class _Deque_iterator { + public: + void operator==(_Deque_iterator const&) const { } + }; +} + +void j(void) +{ + // Instantiation. + std::_Deque_iterator dummy; + dummy.operator==(dummy); +} +*/ + verify_demangle("_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_", + "std::_Deque_iterator::operator==(std::_Deque_iterator const&) const"); + + return 0; +} diff --git a/libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc b/libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc new file mode 100644 index 000000000..836fd1bf1 --- /dev/null +++ b/libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc @@ -0,0 +1,50 @@ +// 2003-02-26 Carlo Wood + +// Copyright (C) 2003, 2009 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 3, 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 COPYING3. If not see +// . + +// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling) + +#include + +// libcwd tests +int main() +{ + using namespace __gnu_test; + +/* +struct option { }; +namespace std { + template + class __normal_iterator { + public: + void operator-(__normal_iterator const&) const { } + }; +} + +void k(void) +{ + // Instantiation. + std::__normal_iterator