Commit fabf71ba by DJ Delorie Committed by DJ Delorie

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
parent 037e5573
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> 2014-07-23 Nathan Sidwell <nathan@acm.org>
* libgcov-driver.c (set_gcov_list): Remove. * libgcov-driver.c (set_gcov_list): Remove.
......
...@@ -102,6 +102,7 @@ static struct object obj; ...@@ -102,6 +102,7 @@ static struct object obj;
/* Handle of libgcc's DLL reference. */ /* Handle of libgcc's DLL reference. */
HANDLE hmod_libgcc; HANDLE hmod_libgcc;
static void * (*deregister_frame_fn) (const void *) == NULL;
#endif #endif
#if TARGET_USE_JCR_SECTION #if TARGET_USE_JCR_SECTION
...@@ -133,9 +134,14 @@ __gcc_register_frame (void) ...@@ -133,9 +134,14 @@ __gcc_register_frame (void)
hmod_libgcc = LoadLibrary (LIBGCC_SONAME); hmod_libgcc = LoadLibrary (LIBGCC_SONAME);
register_frame_fn = (void (*) (const void *, struct object *)) register_frame_fn = (void (*) (const void *, struct object *))
GetProcAddress (h, "__register_frame_info"); 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) if (register_frame_fn)
register_frame_fn (__EH_FRAME_BEGIN__, &obj); register_frame_fn (__EH_FRAME_BEGIN__, &obj);
#endif #endif
...@@ -161,13 +167,6 @@ void ...@@ -161,13 +167,6 @@ void
__gcc_deregister_frame (void) __gcc_deregister_frame (void)
{ {
#if DWARF2_UNWIND_INFO #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) if (deregister_frame_fn)
deregister_frame_fn (__EH_FRAME_BEGIN__); deregister_frame_fn (__EH_FRAME_BEGIN__);
if (hmod_libgcc) if (hmod_libgcc)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment