OSDN Git Service

PR libgcj/50053
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Dec 2011 10:40:27 +0000 (10:40 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Dec 2011 10:40:27 +0000 (10:40 +0000)
        * java/lang/natClass.cc (java::lang::Class::newInstance): Special case
        member-call for 32-bit IA native Window target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182225 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/natClass.cc

index e856e4b..08d4faa 100644 (file)
@@ -1,3 +1,9 @@
+2011-12-12  Kai Tietz  <ktietz@redhat.com>
+
+       PR libgcj/50053
+       * java/lang/natClass.cc (java::lang::Class::newInstance): Special case
+       member-call for 32-bit IA native Window target.
+
 2011-11-24  Jakub Jelinek  <jakub@redhat.com>
 
        PR bootstrap/50888
index ec4a18f..b5ad91f 100644 (file)
@@ -661,7 +661,13 @@ java::lang::Class::newInstance (void)
     throw new java::lang::InstantiationException (getName());
 
   jobject r = _Jv_AllocObject (this);
+  /* Class constructors/destructors have __thiscall calling
+     convention for 32-bit native Windows ABI.  */
+#if defined (__MINGW32__) && defined (__i386__)
+  ((void (__thiscall *) (jobject)) meth->ncode) (r);
+#else
   ((void (*) (jobject)) meth->ncode) (r);
+#endif
   return r;
 }