From 2b333d823203df92d0e9bb748b06af165eadb4b3 Mon Sep 17 00:00:00 2001 From: dj Date: Thu, 24 Jul 2014 16:41:01 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213009 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgcc/ChangeLog | 6 ++++++ libgcc/config/i386/cygming-crtbegin.c | 17 ++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index c00e6f92dc4..f74aeb43a95 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,9 @@ +2014-07-24 DJ Delorie + + * 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 * libgcov-driver.c (set_gcov_list): Remove. diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c index 195b4637637..b27cd0c0a9f 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) -- 2.11.4.GIT