diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-01-21 17:01:26 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2004-01-21 17:01:26 +0100 |
commit | bfccaa6f7006c6f1a56f6b8e4194583e8cddd2f4 (patch) | |
tree | c3b288134c597c606d66497b6e532680dad3420f /gcc | |
parent | c3cda381c7dec4b95c20275629acc7194c68a324 (diff) | |
download | gcc-bfccaa6f7006c6f1a56f6b8e4194583e8cddd2f4.zip gcc-bfccaa6f7006c6f1a56f6b8e4194583e8cddd2f4.tar.gz gcc-bfccaa6f7006c6f1a56f6b8e4194583e8cddd2f4.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/crtstuff.c | 18 |
2 files changed, 19 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac0537f..67a1f8e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-01-21 Jakub Jelinek <jakub@redhat.com> + + * crtstuff.c (frame_dummy, __do_global_ctors_1): Call + _Jv_RegisterClasses through a function pointer. + 2004-01-21 Falk Hueffner <falk@debian.org> PR target/12898 diff --git a/gcc/crtstuff.c b/gcc/crtstuff.c index b9a29a0b..c4dbbfc 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 */ |