From: Kai Tietz Date: Mon, 12 Dec 2011 10:40:27 +0000 (+0100) Subject: re PR libgcj/50053 (jc1 doesn't emit static initializer or initializer code for super... X-Git-Tag: releases/gcc-4.7.0~1619 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7520518f731935ae46aeb4f1d276585d7aa8e0ba;p=thirdparty%2Fgcc.git re PR libgcj/50053 (jc1 doesn't emit static initializer or initializer code for super class without -findirect-dispatch.) PR libgcj/50053 * java/lang/natClass.cc (java::lang::Class::newInstance): Special case member-call for 32-bit IA native Window target. From-SVN: r182225 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index e856e4b65d7e..08d4faa1314c 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2011-12-12 Kai Tietz + + 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 PR bootstrap/50888 diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index ec4a18f1b51b..b5ad91f2252c 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -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; }