diff options
author | Geoffrey Keating <geoffk@apple.com> | 2002-11-07 06:00:07 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2002-11-07 06:00:07 +0000 |
commit | 3cfe49dab857d0d0a61597afe558a175287c27ec (patch) | |
tree | 0a818627c9d2e5109f50615e83ad08d7572b1feb /gcc/unwind-dw2-fde.h | |
parent | 12f256d42ec080c4bc69e08636ce3b40b792eae7 (diff) | |
download | gcc-3cfe49dab857d0d0a61597afe558a175287c27ec.tar.gz |
Index: ChangeLog
2002-11-05 Geoffrey Keating <geoffk@apple.com>
* config.gcc: Don't create crtbegin, crtend on Darwin; do create
crt2.o. Rearrange t-darwin makefiles.
* crtstuff.c [OBJECT_FORMAT_MACHO]: Delete.
* unwind-dw2-fde-darwin.c: New.
* unwind-dw2-fde-glibc.c: Correct comment.
* unwind-dw2-fde.c (__register_frame_info_bases)
[DWARF2_OBJECT_END_PTR_EXTENSION]: Clear fde_end.
(classify_object_over_fdes): Use last_fde.
(add_fdes): Likewise.
(linear_search_fdes): Likewise.
* unwind-dw2-fde.h (struct object)
[DWARF2_OBJECT_END_PTR_EXTENSION]: Add fde_end field.
(last_fde): New.
* config/darwin.h (STARTFILE_SPEC): Include crt2.o not crtbegin.o.
(ENDFILE_SPEC): No crtend.o.
* config/t-darwin: New.
* config/i386/t-darwin: Delete.
* config/darwin-crt2.c: New.
* config/rs6000/t-darwin: Delete contents duplicated in t-rs6000
or config/t-darwin.
Index: testsuite/ChangeLog
2002-11-05 Geoffrey Keating <geoffk@apple.com>
* g++.old-deja/g++.eh/badalloc1.C: XFAIL excess errors test on
Darwin.
From-SVN: r58877
Diffstat (limited to 'gcc/unwind-dw2-fde.h')
-rw-r--r-- | gcc/unwind-dw2-fde.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/unwind-dw2-fde.h b/gcc/unwind-dw2-fde.h index 23f6f7e6ca9..b7d96cfe992 100644 --- a/gcc/unwind-dw2-fde.h +++ b/gcc/unwind-dw2-fde.h @@ -61,6 +61,10 @@ struct object size_t i; } s; +#ifdef DWARF2_OBJECT_END_PTR_EXTENSION + char *fde_end; +#endif + struct object *next; }; @@ -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, fde *f) +{ +#ifdef DWARF2_OBJECT_END_PTR_EXTENSION + return (char *)f == obj->fde_end || f->length == 0; +#else + return f->length == 0; +#endif +} |