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. --- .../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 ++++++++ 33 files changed, 1451 insertions(+) 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 (limited to 'libstdc++-v3/testsuite/abi/demangle/regression') 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