diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-12 17:34:19 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-12 17:34:19 +0000 |
commit | caf47ebd0ba00d947b8d7920744a48b5179b33ad (patch) | |
tree | a584bd100b0e0b16b30cfe4412bd40c3752cd24e /libstdc++-v3 | |
parent | 7a017428e4becc1c26fb684a6919de81b97cc21a (diff) | |
download | ppe42-gcc-caf47ebd0ba00d947b8d7920744a48b5179b33ad.tar.gz ppe42-gcc-caf47ebd0ba00d947b8d7920744a48b5179b33ad.zip |
2011-12-12 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2011-12-12 Kai Tietz <ktietz@redhat.com>
PR libstdc++/51135
* libsupc++/cxxabi.h (__cxa_dtor_type): New type.
(__cxa_throw): Use it for destructor-argument.
* libsupc++/eh_throw.cc (__cxa_throw): Likewise.
* libsupc++/unwind-cxx.h (__cxa_exception): Change type of member
exceptionDestructor to __cxa_dtor_type.
* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR):
Define.
(__cxa_dtor_type): Declare target secific type variant.
* config/os/mingw32/os_defines.h: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182250 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 14 | ||||
-rw-r--r-- | libstdc++-v3/config/os/mingw32-w64/os_defines.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/config/os/mingw32/os_defines.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/cxxabi.h | 6 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/eh_throw.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/unwind-cxx.h | 2 |
6 files changed, 16 insertions, 24 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 90fd704177d..8a46f1c8973 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,6 +1,18 @@ 2011-12-12 Paolo Carlini <paolo.carlini@oracle.com> - * Revert the last commit. + Revert: + 2011-12-12 Kai Tietz <ktietz@redhat.com> + + PR libstdc++/51135 + * libsupc++/cxxabi.h (__cxa_dtor_type): New type. + (__cxa_throw): Use it for destructor-argument. + * libsupc++/eh_throw.cc (__cxa_throw): Likewise. + * libsupc++/unwind-cxx.h (__cxa_exception): Change type of member + exceptionDestructor to __cxa_dtor_type. + * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_THISCALL_ON_DTOR): + Define. + (__cxa_dtor_type): Declare target secific type variant. + * config/os/mingw32/os_defines.h: Likewise. 2011-12-12 Kai Tietz <ktietz@redhat.com> diff --git a/libstdc++-v3/config/os/mingw32-w64/os_defines.h b/libstdc++-v3/config/os/mingw32-w64/os_defines.h index b612d06fd7a..160c1ffda58 100644 --- a/libstdc++-v3/config/os/mingw32-w64/os_defines.h +++ b/libstdc++-v3/config/os/mingw32-w64/os_defines.h @@ -65,12 +65,4 @@ // ioctlsocket function doesn't work for normal file-descriptors. #define _GLIBCXX_NO_IOCTL 1 -// See libstdc++/51135 -// Class constructors/destructors have __thiscall calling-convention -// for IA 32-bit target. -#if defined (__i386__) -#define _GLIBCXX_USE_THISCALL_ON_DTOR 1 -typedef void (__thiscall *__cxa_dtor_type) (void *); -#endif - #endif diff --git a/libstdc++-v3/config/os/mingw32/os_defines.h b/libstdc++-v3/config/os/mingw32/os_defines.h index b612d06fd7a..160c1ffda58 100644 --- a/libstdc++-v3/config/os/mingw32/os_defines.h +++ b/libstdc++-v3/config/os/mingw32/os_defines.h @@ -65,12 +65,4 @@ // ioctlsocket function doesn't work for normal file-descriptors. #define _GLIBCXX_NO_IOCTL 1 -// See libstdc++/51135 -// Class constructors/destructors have __thiscall calling-convention -// for IA 32-bit target. -#if defined (__i386__) -#define _GLIBCXX_USE_THISCALL_ON_DTOR 1 -typedef void (__thiscall *__cxa_dtor_type) (void *); -#endif - #endif diff --git a/libstdc++-v3/libsupc++/cxxabi.h b/libstdc++-v3/libsupc++/cxxabi.h index 7ed5c559f13..aeaf4ccf4aa 100644 --- a/libstdc++-v3/libsupc++/cxxabi.h +++ b/libstdc++-v3/libsupc++/cxxabi.h @@ -51,10 +51,6 @@ #include <bits/cxxabi_tweaks.h> #include <bits/cxxabi_forced.h> -#ifndef _GLIBCXX_USE_THISCALL_ON_DTOR -typedef void (*__cxa_dtor_type) (void *); -#endif - #ifdef __cplusplus namespace __cxxabiv1 { @@ -600,7 +596,7 @@ namespace __cxxabiv1 // Throw the exception. void - __cxa_throw(void*, std::type_info*, __cxa_dtor_type) + __cxa_throw(void*, std::type_info*, void (*) (void *)) __attribute__((__noreturn__)); // Used to implement exception handlers. diff --git a/libstdc++-v3/libsupc++/eh_throw.cc b/libstdc++-v3/libsupc++/eh_throw.cc index 0791f1a595f..0e7083c9033 100644 --- a/libstdc++-v3/libsupc++/eh_throw.cc +++ b/libstdc++-v3/libsupc++/eh_throw.cc @@ -59,7 +59,7 @@ __gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc) extern "C" void __cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo, - __cxa_dtor_type dest) + void (*dest) (void *)) { // Definitely a primary. __cxa_refcounted_exception *header diff --git a/libstdc++-v3/libsupc++/unwind-cxx.h b/libstdc++-v3/libsupc++/unwind-cxx.h index b9919ce9468..3ce32e969f5 100644 --- a/libstdc++-v3/libsupc++/unwind-cxx.h +++ b/libstdc++-v3/libsupc++/unwind-cxx.h @@ -51,7 +51,7 @@ struct __cxa_exception { // Manage the exception object itself. std::type_info *exceptionType; - __cxa_dtor_type exceptionDestructor; + void (*exceptionDestructor)(void *); // The C++ standard has entertaining rules wrt calling set_terminate // and set_unexpected in the middle of the exception cleanup process. |