summaryrefslogtreecommitdiff
path: root/libstdc++-v3/config
diff options
context:
space:
mode:
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-16 18:43:06 +0000
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-16 18:43:06 +0000
commite01c35d8ddb90216a85ad34ea8190bd65b409086 (patch)
tree235420959ce49d4349d33b9c1a7eb34ef39e0a60 /libstdc++-v3/config
parent39950e1fe982d1a038d180d1630d02a0598f8a4c (diff)
downloadgcc-e01c35d8ddb90216a85ad34ea8190bd65b409086.tar.gz
PR libstdc++/51135
* libsupc++/unwind-cxx.h (__cxa_exception): Mark exceptionDestructor by _GLIBCXX_CDTOR_CALLABI. * libsupc++/eh_throw.cc (__cxa_throw): Mark destructor function argument by _GLIBCXX_CDTOR_CALLABI. * libsupc++/cxxabi.h (__cxa_throw): Likewise. (_GLIBCXX_CDTOR_CALLABI): Add empty default definition. * config/os/mingw32-w64/os_defines.h (_GLIBCXX_CDTOR_CALLABI): Define for IA-32 target as __thiscall. * config/os/mingw32/os_defines.h (_GLIBCXX_CDTOR_CALLABI): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182410 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/config')
-rw-r--r--libstdc++-v3/config/os/mingw32-w64/os_defines.h7
-rw-r--r--libstdc++-v3/config/os/mingw32/os_defines.h7
2 files changed, 14 insertions, 0 deletions
diff --git a/libstdc++-v3/config/os/mingw32-w64/os_defines.h b/libstdc++-v3/config/os/mingw32-w64/os_defines.h
index 160c1ffda58..f82e25c76a7 100644
--- a/libstdc++-v3/config/os/mingw32-w64/os_defines.h
+++ b/libstdc++-v3/config/os/mingw32-w64/os_defines.h
@@ -65,4 +65,11 @@
// ioctlsocket function doesn't work for normal file-descriptors.
#define _GLIBCXX_NO_IOCTL 1
+// See libstdc++/51135
+// Class constructors/destructors have __thiscall calling-convention on
+// IA 32-bit
+#if defined (__i386__)
+#define _GLIBCXX_CDTOR_CALLABI __thiscall
+#endif
+
#endif
diff --git a/libstdc++-v3/config/os/mingw32/os_defines.h b/libstdc++-v3/config/os/mingw32/os_defines.h
index 160c1ffda58..f82e25c76a7 100644
--- a/libstdc++-v3/config/os/mingw32/os_defines.h
+++ b/libstdc++-v3/config/os/mingw32/os_defines.h
@@ -65,4 +65,11 @@
// ioctlsocket function doesn't work for normal file-descriptors.
#define _GLIBCXX_NO_IOCTL 1
+// See libstdc++/51135
+// Class constructors/destructors have __thiscall calling-convention on
+// IA 32-bit
+#if defined (__i386__)
+#define _GLIBCXX_CDTOR_CALLABI __thiscall
+#endif
+
#endif