From: Jeffrey A Law Date: Wed, 12 Apr 2000 16:04:25 +0000 (+0000) Subject: c-typeck.c (add_pending_init): Don't abort for multiple fields at the same offset. X-Git-Tag: prereleases/gcc-2.95.3-test1~72 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf0cb588f5fce79441a3bfd2c1b02710056ac053;p=thirdparty%2Fgcc.git c-typeck.c (add_pending_init): Don't abort for multiple fields at the same offset. 2000-02-19 Richard Henderson * c-typeck.c (add_pending_init): Don't abort for multiple fields at the same offset. (pending_init_member): Test the correct member. From-SVN: r33112 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index afddd094e8c4..e11a0f55809c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ Wed Apr 12 00:42:19 2000 Jeffrey A Law (law@cygnus.com) + 2000-02-19 Richard Henderson + * c-typeck.c (add_pending_init): Don't abort for multiple + fields at the same offset. + (pending_init_member): Test the correct member. + Wed Apr 12 00:44:31 2000 Jeffrey A Law (law@cygnus.com) * config/i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Changed to 2. diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 154d830a6d01..d320307574b5 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -5846,7 +5846,7 @@ add_pending_init (purpose, value) p = *q; if (tree_int_cst_lt (purpose, p->purpose)) q = &p->left; - else if (tree_int_cst_lt (p->purpose, purpose)) + else if (p->purpose != purpose) q = &p->right; else abort (); @@ -5860,8 +5860,7 @@ add_pending_init (purpose, value) if (tree_int_cst_lt (DECL_FIELD_BITPOS (purpose), DECL_FIELD_BITPOS (p->purpose))) q = &p->left; - else if (tree_int_cst_lt (DECL_FIELD_BITPOS (p->purpose), - DECL_FIELD_BITPOS (purpose))) + else if (p->purpose != purpose) q = &p->right; else abort (); @@ -6046,7 +6045,7 @@ pending_init_member (field) { while (p) { - if (tree_int_cst_equal (field, p->purpose)) + if (field == p->purpose) return 1; else if (tree_int_cst_lt (field, p->purpose)) p = p->left;