Commit 78a1f201 by Danny Smith Committed by Danny Smith

cygming-crtend.c (register_frame_ctor): If DEFAULT_USE_CXA_ATEXIT, register…

cygming-crtend.c (register_frame_ctor): If DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame directly with atexit.

	* config/i386/cygming-crtend.c (register_frame_ctor): If
	DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
	directly with atexit.
	(deregister_frame_ctor): Rename to ...
	(deregister_frame_dtor): Use to call __gcc_deregister_frame
	if !DEFAULT_USE_CXA_ATEXIT.

From-SVN: r140351
parent a63f2942
2008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
* config/i386/cygming-crtend.c (register_frame_ctor): If
DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
directly with atexit.
(deregister_frame_ctor): Rename to ...
(deregister_frame_dtor): Use to call __gcc_deregister_frame
if !DEFAULT_USE_CXA_ATEXIT.
2008-09-13 Jan Hubicka <jh@suse.cz> 2008-09-13 Jan Hubicka <jh@suse.cz>
* cgraph.c: Include value-prof.h * cgraph.c: Include value-prof.h
......
...@@ -74,13 +74,20 @@ static void ...@@ -74,13 +74,20 @@ static void
register_frame_ctor (void) register_frame_ctor (void)
{ {
__gcc_register_frame (); __gcc_register_frame ();
#if DEFAULT_USE_CXA_ATEXIT
/* If we use the __cxa_atexit method to register C++ dtors
at object construction, also use atexit to register eh frame
info cleanup. */
atexit (__gcc_deregister_frame);
#endif
} }
static void deregister_frame_ctor (void) __attribute__ ((destructor (0))); #if !DEFAULT_USE_CXA_ATEXIT
static void deregister_frame_dtor (void) __attribute__ ((destructor (0)));
static void static void
deregister_frame_ctor (void) deregister_frame_dtor (void)
{ {
__gcc_deregister_frame (); __gcc_deregister_frame ();
} }
#endif
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