From: Jakub Jelinek Date: Wed, 21 Jan 2004 16:01:26 +0000 (+0100) Subject: crtstuff.c (frame_dummy, [...]): Call _Jv_RegisterClasses through a function pointer. X-Git-Tag: releases/gcc-4.0.0~10871 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bfccaa6f7006c6f1a56f6b8e4194583e8cddd2f4;p=thirdparty%2Fgcc.git crtstuff.c (frame_dummy, [...]): Call _Jv_RegisterClasses through a function pointer. * crtstuff.c (frame_dummy, __do_global_ctors_1): Call _Jv_RegisterClasses through a function pointer. From-SVN: r76287 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac0537ffee36..67a1f8e96a87 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-01-21 Jakub Jelinek + + * crtstuff.c (frame_dummy, __do_global_ctors_1): Call + _Jv_RegisterClasses through a function pointer. + 2004-01-21 Falk Hueffner PR target/12898 diff --git a/gcc/crtstuff.c b/gcc/crtstuff.c index b9a29a0ba607..c4dbbfc95f78 100644 --- a/gcc/crtstuff.c +++ b/gcc/crtstuff.c @@ -312,8 +312,13 @@ frame_dummy (void) #endif /* CRT_GET_RFIB_DATA */ #endif /* USE_EH_FRAME_REGISTRY */ #ifdef JCR_SECTION_NAME - if (__JCR_LIST__[0] && _Jv_RegisterClasses) - _Jv_RegisterClasses (__JCR_LIST__); + if (__JCR_LIST__[0]) + { + void (*register_classes) (void *) = _Jv_RegisterClasses; + __asm ("" : "+r" (register_classes)); + if (register_classes) + register_classes (__JCR_LIST__); + } #endif /* JCR_SECTION_NAME */ } @@ -395,8 +400,13 @@ __do_global_ctors_1(void) __register_frame_info (__EH_FRAME_BEGIN__, &object); #endif #ifdef JCR_SECTION_NAME - if (__JCR_LIST__[0] && _Jv_RegisterClasses) - _Jv_RegisterClasses (__JCR_LIST__); + if (__JCR_LIST__[0]) + { + void (*register_classes) (void *) = _Jv_RegisterClasses; + __asm ("" : "+r" (register_classes)); + if (register_classes) + register_classes (__JCR_LIST__); + } #endif } #endif /* USE_EH_FRAME_REGISTRY || JCR_SECTION_NAME */