aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/testsuite/18_support/exception/38732.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/testsuite/18_support/exception/38732.cc')
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/18_support/exception/38732.cc92
1 files changed, 0 insertions, 92 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/exception/38732.cc b/gcc-4.4.3/libstdc++-v3/testsuite/18_support/exception/38732.cc
deleted file mode 100644
index 43cf5b891..000000000
--- a/gcc-4.4.3/libstdc++-v3/testsuite/18_support/exception/38732.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (C) 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
-// <http://www.gnu.org/licenses/>.
-
-#include <typeinfo>
-#include <exception>
-#include <cstddef>
-#include "unwind.h"
-#include <testsuite_hooks.h>
-
-// Before exception_ptr was introduced, some programs copied
-// part of unwind-cxx.h and used __cxa_get_globals to get at the
-// current exceptionType. __cxa_exception structure is described in the
-// C++ ABI, so they have the right to assume it works.
-// Ensure it is true.
-
-struct __cxa_exception
-{
- std::type_info *exceptionType;
- void (*exceptionDestructor)(void *);
- std::unexpected_handler unexpectedHandler;
- std::terminate_handler terminateHandler;
- __cxa_exception *nextException;
- int handlerCount;
-#ifdef __ARM_EABI_UNWINDER__
- __cxa_exception* nextPropagatingException;
- int propagationCount;
-#else
- int handlerSwitchValue;
- const unsigned char *actionRecord;
- const unsigned char *languageSpecificData;
- _Unwind_Ptr catchTemp;
- void *adjustedPtr;
-#endif
- _Unwind_Exception unwindHeader;
-};
-
-struct __cxa_eh_globals
-{
- __cxa_exception *caughtExceptions;
- unsigned int uncaughtExceptions;
-#ifdef __ARM_EABI_UNWINDER__
- __cxa_exception* propagatingExceptions;
-#endif
-};
-
-extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
-
-// PR libstdc++/38732
-void test01 ()
-{
- bool test __attribute__((unused)) = true;
- try {
- throw 0;
- } catch(...) {
- __cxa_exception *exc = __cxa_get_globals()->caughtExceptions;
- VERIFY ( exc != NULL );
- VERIFY ( typeid(int) == *exc->exceptionType );
- }
- try {
- throw 0LL;
- } catch(...) {
- __cxa_exception *exc = __cxa_get_globals()->caughtExceptions;
- VERIFY ( exc != NULL );
- VERIFY ( typeid(long long int) == *exc->exceptionType );
- }
- try {
- throw 0.0;
- } catch(...) {
- __cxa_exception *exc = __cxa_get_globals()->caughtExceptions;
- VERIFY ( exc != NULL );
- VERIFY ( typeid(double) == *exc->exceptionType );
- }
-}
-
-int main ()
-{
- test01 ();
-}