This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[PATCH] Fix C++ unwinding through signal frames (PR c++/34152)
- From: Jakub Jelinek <jakub at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Sun, 6 Jan 2008 15:31:51 -0500
- Subject: [PATCH] Fix C++ unwinding through signal frames (PR c++/34152)
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
I've committed this patch as obvious to the trunk (probably should be
applied to 4.2 as well). One liner is below the limit for copyright
assignments I believe. Originally in my PR other/26208 fix
_Unwind_GetIPInfo was used unconditionally, then for platforms which insist
on using old libgcc PR target/26792 was added, but with a typo in it
which prevents using _Unwind_GetIPInfo even when it is available.
2008-01-06 Ted Phelps <phelps@gnusto.com>
PR c++/34152
* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Check
_GLIBCXX_HAVE_GETIPINFO instead of HAVE_GETIPINFO.
--- libstdc++-v3/libsupc++/eh_personality.cc 2007-06-19 11:02:32.000000000 +0200
+++ libstdc++-v3/libsupc++/eh_personality.cc 2008-01-06 21:02:23.000000000 +0100
@@ -1,5 +1,5 @@
// -*- C++ -*- The GNU C++ exception personality routine.
-// Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2006, 2008 Free Software Foundation, Inc.
//
// This file is part of GCC.
//
@@ -446,7 +446,7 @@ PERSONALITY_FUNCTION (int version,
// Parse the LSDA header.
p = parse_lsda_header (context, language_specific_data, &info);
info.ttype_base = base_of_encoded_value (info.ttype_encoding, context);
-#ifdef HAVE_GETIPINFO
+#ifdef _GLIBCXX_HAVE_GETIPINFO
ip = _Unwind_GetIPInfo (context, &ip_before_insn);
#else
ip = _Unwind_GetIP (context);
Jakub