diff options
author | DJ Delorie <dj@redhat.com> | 2014-07-24 12:41:01 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2014-07-24 12:41:01 -0400 |
commit | fabf71ba2cdb1f682b370a1c7e74b1e330faa7d3 (patch) | |
tree | fb7a6fc0a705116ca7acd65510e9fe8c9deec343 | |
parent | 037e55737efb95c6068fbcc740fc8f16a0cf7939 (diff) | |
download | gcc-fabf71ba2cdb1f682b370a1c7e74b1e330faa7d3.zip gcc-fabf71ba2cdb1f682b370a1c7e74b1e330faa7d3.tar.gz gcc-fabf71ba2cdb1f682b370a1c7e74b1e330faa7d3.tar.bz2 |
cygming-crtbegin.c (deregister_frame_fn): Newly public.
* config/i386/cygming-crtbegin.c (deregister_frame_fn): Newly public.
(__gcc_deregister_frame): Move logic to detect deregister function to...
(__gcc_register_frame): here, so it's consistent with the register logic.
From-SVN: r213009
-rw-r--r-- | libgcc/ChangeLog | 6 | ||||
-rw-r--r-- | libgcc/config/i386/cygming-crtbegin.c | 17 |
2 files changed, 14 insertions, 9 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index c00e6f9..f74aeb4 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2014-07-24 DJ Delorie <dj@redhat.com> + + * config/i386/cygming-crtbegin.c (deregister_frame_fn): Newly public. + (__gcc_deregister_frame): Move logic to detect deregister function to... + (__gcc_register_frame): here, so it's consistent with the register logic. + 2014-07-23 Nathan Sidwell <nathan@acm.org> * libgcov-driver.c (set_gcov_list): Remove. diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c index 195b4637..b27cd0c 100644 --- a/libgcc/config/i386/cygming-crtbegin.c +++ b/libgcc/config/i386/cygming-crtbegin.c @@ -102,6 +102,7 @@ static struct object obj; /* Handle of libgcc's DLL reference. */ HANDLE hmod_libgcc; +static void * (*deregister_frame_fn) (const void *) == NULL; #endif #if TARGET_USE_JCR_SECTION @@ -133,9 +134,14 @@ __gcc_register_frame (void) hmod_libgcc = LoadLibrary (LIBGCC_SONAME); register_frame_fn = (void (*) (const void *, struct object *)) GetProcAddress (h, "__register_frame_info"); + deregister_frame_fn = (void* (*) (const void *)) + GetProcAddress (h, "__deregister_frame_info"); + } + else + { + register_frame_fn = __register_frame_info; + deregister_frame_fn = __deregister_frame_info; } - else - register_frame_fn = __register_frame_info; if (register_frame_fn) register_frame_fn (__EH_FRAME_BEGIN__, &obj); #endif @@ -161,13 +167,6 @@ void __gcc_deregister_frame (void) { #if DWARF2_UNWIND_INFO - void * (*deregister_frame_fn) (const void *); - HANDLE h = GetModuleHandle (LIBGCC_SONAME); - if (h) - deregister_frame_fn = (void* (*) (const void *)) - GetProcAddress (h, "__deregister_frame_info"); - else - deregister_frame_fn = __deregister_frame_info; if (deregister_frame_fn) deregister_frame_fn (__EH_FRAME_BEGIN__); if (hmod_libgcc) |