diff options
author | Kai Tietz <ktietz@redhat.com> | 2011-12-12 14:24:30 +0100 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2011-12-12 14:24:30 +0100 |
commit | f5c48b80ce05386d15f25859cecafbc475a21bd3 (patch) | |
tree | fb256e22db988e4e02527dbd9b878d0a9519f86b /libstdc++-v3/config | |
parent | b913199ea39e5027a5f4176f245fe7fef1951dcd (diff) | |
download | gcc-f5c48b80ce05386d15f25859cecafbc475a21bd3.tar.gz |
PR libstdc++/511135
* libsupc++/cxxabi.h (__cxxabi_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 __cxxabi_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.
From-SVN: r182237
Diffstat (limited to 'libstdc++-v3/config')
-rw-r--r-- | libstdc++-v3/config/os/mingw32-w64/os_defines.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/config/os/mingw32/os_defines.h | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/libstdc++-v3/config/os/mingw32-w64/os_defines.h b/libstdc++-v3/config/os/mingw32-w64/os_defines.h index c483a92e6da..b612d06fd7a 100644 --- a/libstdc++-v3/config/os/mingw32-w64/os_defines.h +++ b/libstdc++-v3/config/os/mingw32-w64/os_defines.h @@ -1,7 +1,7 @@ // Specific definitions for generic platforms -*- C++ -*- // Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -// 2009, 2010 Free Software Foundation, Inc. +// 2009, 2010, 2011 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 @@ -65,4 +65,12 @@ // 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 c483a92e6da..b612d06fd7a 100644 --- a/libstdc++-v3/config/os/mingw32/os_defines.h +++ b/libstdc++-v3/config/os/mingw32/os_defines.h @@ -1,7 +1,7 @@ // Specific definitions for generic platforms -*- C++ -*- // Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -// 2009, 2010 Free Software Foundation, Inc. +// 2009, 2010, 2011 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 @@ -65,4 +65,12 @@ // 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 |