This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/34152] Erratic behaviour: Exception translation (throw from signal handlers)
- From: "phelps at gnusto dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Dec 2007 10:38:40 -0000
- Subject: [Bug c++/34152] Erratic behaviour: Exception translation (throw from signal handlers)
- References: <bug-34152-15034@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from phelps at gnusto dot com 2007-12-11 10:38 -------
Created an attachment (id=14728)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14728&action=view)
proposed fix
I'm seeing similar behavior on x86-64 with both g++-4.1.3 (ubuntu-7.10 dist)
and g++-4.2.2 build from sources. I spent some time in the debugger and I've
identified the problem and a fix.
It looks like the problem first appeared in r115654. The change to
eh_personality.cc guards a call to _Unwind_GetIPInfo with the preprocessor
macro HAVE_GETIPINFO. Unfortunately, that macro HAVE_GETIPINFO is never
defined in c++config.h; _GLIBCXX_HAVE_GETIPINFO is.
The attached patch (against gcc-4.2.2) fixes this issue and the resulting
libstdc++.so.6.0.9 produces the desired behavior.
Thanks,
-Ted
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34152