diff options
author | Alexander Kabaev <kan@FreeBSD.org> | 2003-07-11 03:40:53 +0000 |
---|---|---|
committer | Alexander Kabaev <kan@FreeBSD.org> | 2003-07-11 03:40:53 +0000 |
commit | bd0df3aa27aac083bd60b649fa5347076a5126eb (patch) | |
tree | f6b0610f4a17fd26aa234354f050080f789861a4 /contrib/gcc/unwind-dw2-fde.h | |
parent | fabd8bcd49e1046bc9abdcb4efaea04638630b6f (diff) |
Gcc 3.3.1-pre as of 2003-07-11.
Notes
Notes:
svn path=/vendor/gcc/dist/; revision=117395
Diffstat (limited to 'contrib/gcc/unwind-dw2-fde.h')
-rw-r--r-- | contrib/gcc/unwind-dw2-fde.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/contrib/gcc/unwind-dw2-fde.h b/contrib/gcc/unwind-dw2-fde.h index b06ff41133f8..7565c49f7547 100644 --- a/contrib/gcc/unwind-dw2-fde.h +++ b/contrib/gcc/unwind-dw2-fde.h @@ -1,5 +1,5 @@ /* Subroutines needed for unwinding stack frames for exception handling. */ -/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 +/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Jason Merrill <jason@cygnus.com>. @@ -61,6 +61,10 @@ struct object size_t i; } s; +#ifdef DWARF2_OBJECT_END_PTR_EXTENSION + char *fde_end; +#endif + struct object *next; }; @@ -122,7 +126,7 @@ typedef unsigned char ubyte; a) in a linear search, find the shared image (i.e. DLL) containing the PC b) using the FDE table for that shared object, locate the FDE using - binary search (which requires the sorting). */ + binary search (which requires the sorting). */ /* The first few fields of a CIE. The CIE_id field is 0 for a CIE, to distinguish it from a valid FDE. FDEs are aligned to an addressing @@ -160,3 +164,13 @@ next_fde (fde *f) } extern fde * _Unwind_Find_FDE (void *, struct dwarf_eh_bases *); + +static inline int +last_fde (struct object *obj __attribute__ ((__unused__)), fde *f) +{ +#ifdef DWARF2_OBJECT_END_PTR_EXTENSION + return (char *)f == obj->fde_end || f->length == 0; +#else + return f->length == 0; +#endif +} |