diff options
author | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2003-02-27 16:57:26 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2003-02-27 16:57:26 +0000 |
commit | 4ffbd0777c9cc458ce64322e0be0c6f3840ce5b4 (patch) | |
tree | 8d12c9d5a4a7461c12b0ca8e016cd1bb154e4fcb /libstdc++-v3/testsuite/testsuite_hooks.cc | |
parent | 986704f1c14f3931286ce1a8e632024e4a2b954c (diff) | |
download | gcc-4ffbd0777c9cc458ce64322e0be0c6f3840ce5b4.tar.gz |
[multiple changes]
2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
* src/Makefile.am (sources): Add demangle.cc.
(demangle.o): Add.
(demangle.lo): Add.
* src/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Remove old __cxa_demangle bits.
* libsupc++/Makefile.in: Regenerate.
* testsuite/testsuite_hooks.h
(__gnu_cxx_test::verify_demangle): New.
* testsuite/testsuite_hooks.cc: Define.
2003-02-27 Carlo Wood <carlo@alinoe.com>
* src/demangle.cc: New.
* libsupc++/demangle.h: New.
2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
Carlo Wood <carlo@alinoe.com>
* testsuite/demangle/abi_examples/01.cc: New.
* testsuite/demangle/abi_examples/02.cc: New.
* testsuite/demangle/abi_examples/03.cc: New.
* testsuite/demangle/abi_examples/04.cc: New.
* testsuite/demangle/abi_examples/05.cc: New.
* testsuite/demangle/abi_examples/06.cc: New.
* testsuite/demangle/abi_examples/07.cc: New.
* testsuite/demangle/abi_examples/08.cc: New.
* testsuite/demangle/abi_examples/09.cc: New.
* testsuite/demangle/abi_examples/10.cc: New.
* testsuite/demangle/abi_examples/11.cc: New.
* testsuite/demangle/abi_examples/12.cc: New.
* testsuite/demangle/abi_examples/13.cc: New.
* testsuite/demangle/abi_examples/14.cc: New.
* testsuite/demangle/abi_examples/15.cc: New.
* testsuite/demangle/abi_examples/16.cc: New.
* testsuite/demangle/abi_examples/17.cc: New.
* testsuite/demangle/abi_examples/18.cc: New.
* testsuite/demangle/abi_examples/19.cc: New.
* testsuite/demangle/abi_examples/20.cc: New.
* testsuite/demangle/abi_examples/21.cc: New.
* testsuite/demangle/abi_examples/22.cc: New.
* testsuite/demangle/abi_examples/23.cc: New.
* testsuite/demangle/abi_examples/24.cc: New.
* testsuite/demangle/abi_examples/25.cc: New.
* testsuite/demangle/abi_examples/26.cc: New.
* testsuite/demangle/abi_text/01.cc: New.
* testsuite/demangle/abi_text/02.cc: New.
* testsuite/demangle/abi_text/03.cc: New.
* testsuite/demangle/abi_text/04.cc: New.
* testsuite/demangle/abi_text/05.cc: New.
* testsuite/demangle/abi_text/06.cc: New.
* testsuite/demangle/abi_text/07.cc: New.
* testsuite/demangle/abi_text/08.cc: New.
* testsuite/demangle/abi_text/09.cc: New.
* testsuite/demangle/abi_text/10.cc: New.
* testsuite/demangle/abi_text/11.cc: New.
* testsuite/demangle/abi_text/12.cc: New.
* testsuite/demangle/abi_text/13.cc: New.
* testsuite/demangle/abi_text/14.cc: New.
* testsuite/demangle/regression/3111-1.cc: New.
* testsuite/demangle/regression/3111-2.cc: New.
* testsuite/demangle/regression/7986-01.cc: New.
* testsuite/demangle/regression/7986-02.cc: New.
* testsuite/demangle/regression/7986-03.cc: New.
* testsuite/demangle/regression/7986-04.cc: New.
* testsuite/demangle/regression/7986-05.cc: New.
* testsuite/demangle/regression/7986-06.cc: New.
* testsuite/demangle/regression/7986-07.cc: New.
* testsuite/demangle/regression/7986-08.cc: New.
* testsuite/demangle/regression/7986-09.cc: New.
* testsuite/demangle/regression/7986-10.cc: New.
* testsuite/demangle/regression/7986-11.cc: New.
* testsuite/demangle/regression/7986-12.cc: New.
* testsuite/demangle/regression/7986.cc: New.
* testsuite/demangle/regression/8897.cc: New.
* testsuite/demangle/regression/cw-01.cc: New.
* testsuite/demangle/regression/cw-02.cc: New.
* testsuite/demangle/regression/cw-03.cc: New.
* testsuite/demangle/regression/cw-04.cc: New.
* testsuite/demangle/regression/cw-05.cc: New.
* testsuite/demangle/regression/cw-06.cc: New.
* testsuite/demangle/regression/cw-07.cc: New.
* testsuite/demangle/regression/cw-08.cc: New.
* testsuite/demangle/regression/cw-09.cc: New.
* testsuite/demangle/regression/cw-10.cc: New.
* testsuite/demangle/regression/cw-11.cc: New.
* testsuite/demangle/regression/cw-12.cc: New.
* testsuite/demangle/regression/cw-13.cc: New.
* testsuite/demangle/regression/cw-14.cc: New.
* testsuite/demangle/regression/old.cc: New.
From-SVN: r63513
Diffstat (limited to 'libstdc++-v3/testsuite/testsuite_hooks.cc')
-rw-r--r-- | libstdc++-v3/testsuite/testsuite_hooks.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/testsuite_hooks.cc b/libstdc++-v3/testsuite/testsuite_hooks.cc index 4e714fa6cba..3527779bc76 100644 --- a/libstdc++-v3/testsuite/testsuite_hooks.cc +++ b/libstdc++-v3/testsuite/testsuite_hooks.cc @@ -40,6 +40,7 @@ #include <stdexcept> #include <clocale> #include <locale> +#include <cxxabi.h> namespace __gnu_cxx_test { @@ -85,6 +86,39 @@ namespace __gnu_cxx_test set_memory_limits(float) { } #endif + + void + verify_demangle(const char* mangled, const char* wanted) + { + int status = 0; + const char* s = abi::__cxa_demangle(mangled, 0, 0, &status); + if (!s) + { + switch (status) + { + case 0: + s = "error code = 0: success"; + break; + case -1: + s = "error code = -1: memory allocation failure"; + break; + case -2: + s = "error code = -2: invalid mangled name"; + break; + case -3: + s = "error code = -3: invalid arguments"; + break; + default: + s = "error code unknown - who knows what happened"; + } + } + + std::string w(wanted); + if (w != s) + throw std::runtime_error(s); + } + + // Useful exceptions. class locale_data : public std::runtime_error { |