PR c/46889
* c-decl.c (detect_field_duplicates): Ensure hash is used for
finding duplicates when first field is anonymous.
testsuite:
* gcc.dg/anon-struct-15.c: New test.
From-SVN: r168348
+2010-12-30 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/46889
+ * c-decl.c (detect_field_duplicates): Ensure hash is used for
+ finding duplicates when first field is anonymous.
+
2010-12-30 Nathan Froyd <froydnj@codesourcery.com>
PR target/44606
/* First, see if there are more than "a few" fields.
This is trivially true if there are zero or one fields. */
- if (!fieldlist)
- return;
- x = DECL_CHAIN (fieldlist);
- if (!x)
+ if (!fieldlist || !DECL_CHAIN (fieldlist))
return;
+ x = fieldlist;
do {
timeout--;
if (DECL_NAME (x) == NULL_TREE
+2010-12-30 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/46889
+ * gcc.dg/anon-struct-15.c: New test.
+
2010-12-30 Nathan Froyd <froydnj@codesourcery.com>
PR target/44606
--- /dev/null
+/* Test diagnostics for duplicate field names involving anonymous
+ struct or union as first field. PR 46889. */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+struct foo {
+ union {
+ struct {
+ unsigned long time_stamp;
+ };
+ struct {
+ int *page;
+ };
+ };
+ int *page; /* { dg-error "duplicate member" } */
+};