------- Comment #5 from rguenth at gcc dot gnu dot org 2010-07-08 14:47 ------- The C frontend for
typedef struct { hb_atomic_int_t ref_count; } hb_reference_count_t; has an unnamed (NULL TYPE_NAME) main variant of hb_reference_count_t while the C++ frontend does not have a main variant different from the type with the typedef name. That causes us to hash both types differently (once with tag NULL and once with tag hb_reference_count_t). Now, our current behavior is to allow C-only merging of 'struct Foo *x' vs 'Foo_t *x' or 'stuct Foo x' vs. 'Foo_t x' in a structure. We honor a missing name as ok for merging but still hash in stuff (mostly to avoid excessive collisions for pointer types). -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-07-08 14:47:48 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44871