aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2002-11-25 17:20:10 +0000
committerAndrew Haley <aph@gcc.gnu.org>2002-11-25 17:20:10 +0000
commit5dafd2823100abb3f8b3b43dd4e0af5c81951539 (patch)
tree82b082e6055815d9ac117b67bac10e9a91984907 /gcc
parentb4bbc8b7d36cfb5eafb02814087504e074a00be5 (diff)
downloadgcc-5dafd2823100abb3f8b3b43dd4e0af5c81951539.zip
gcc-5dafd2823100abb3f8b3b43dd4e0af5c81951539.tar.gz
gcc-5dafd2823100abb3f8b3b43dd4e0af5c81951539.tar.bz2
libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add.
2002-11-25 Andrew Haley <aph@redhat.com> * libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add. * config/ia64/unwind-ia64.c (_Unwind_Find_Enclosing_Function): New. * unwind-sjlj.c (_Unwind_Find_Enclosing_Function): Likewise. * unwind-dw2.c (_Unwind_Find_Enclosing_Function): Likewise. From-SVN: r59460
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/ia64/unwind-ia64.c6
-rw-r--r--gcc/libgcc-std.ver1
-rw-r--r--gcc/unwind-dw2.c11
-rw-r--r--gcc/unwind-sjlj.c6
5 files changed, 31 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1847505..dd51dfd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-11-25 Andrew Haley <aph@redhat.com>
+
+ * libgcc-std.ver (_Unwind_Find_Enclosing_Function): Add.
+ * config/ia64/unwind-ia64.c (_Unwind_Find_Enclosing_Function): New.
+ * unwind-sjlj.c (_Unwind_Find_Enclosing_Function): Likewise.
+ * unwind-dw2.c (_Unwind_Find_Enclosing_Function): Likewise.
+
2002-11-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_init_once): Fix a typo in the
diff --git a/gcc/config/ia64/unwind-ia64.c b/gcc/config/ia64/unwind-ia64.c
index e55f1f8..eba9df0 100644
--- a/gcc/config/ia64/unwind-ia64.c
+++ b/gcc/config/ia64/unwind-ia64.c
@@ -1642,6 +1642,12 @@ _Unwind_GetRegionStart (struct _Unwind_Context *context)
return context->region_start;
}
+void *
+_Unwind_Find_Enclosing_Function (void *pc)
+{
+ return NULL;
+}
+
static _Unwind_Reason_Code
uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs)
diff --git a/gcc/libgcc-std.ver b/gcc/libgcc-std.ver
index 6bc4221..d448567 100644
--- a/gcc/libgcc-std.ver
+++ b/gcc/libgcc-std.ver
@@ -158,6 +158,7 @@ GCC_3.0 {
_Unwind_Resume
_Unwind_SetGR
_Unwind_SetIP
+ _Unwind_Find_Enclosing_Function
__deregister_frame
__deregister_frame_info
__deregister_frame_info_bases
diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c
index fd7db6a..41db092 100644
--- a/gcc/unwind-dw2.c
+++ b/gcc/unwind-dw2.c
@@ -202,6 +202,17 @@ _Unwind_GetRegionStart (struct _Unwind_Context *context)
return (_Unwind_Ptr) context->bases.func;
}
+void *
+_Unwind_Find_Enclosing_Function (void *pc)
+{
+ struct dwarf_eh_bases bases;
+ struct dwarf_fde *fde = _Unwind_Find_FDE (pc-1, &bases);
+ if (fde)
+ return bases.func;
+ else
+ return NULL;
+}
+
#ifndef __ia64__
_Unwind_Ptr
_Unwind_GetDataRelBase (struct _Unwind_Context *context)
diff --git a/gcc/unwind-sjlj.c b/gcc/unwind-sjlj.c
index 2293075..59b5415 100644
--- a/gcc/unwind-sjlj.c
+++ b/gcc/unwind-sjlj.c
@@ -208,6 +208,12 @@ _Unwind_GetRegionStart (struct _Unwind_Context *context __attribute__((unused))
return 0;
}
+void *
+_Unwind_Find_Enclosing_Function (void *pc)
+{
+ return NULL;
+}
+
#ifndef __ia64__
_Unwind_Ptr
_Unwind_GetDataRelBase (struct _Unwind_Context *context __attribute__((unused)) )