aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2010-11-10 02:04:13 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2010-11-10 02:04:13 +0000
commitb8cbdff525821c2ca8aa8758ed48d50f101138db (patch)
tree85614d17dea3ab509620a7f846f00f9d16e586d0 /gcc
parent7f904ad1081024a7e5af14c3281b421f97257b16 (diff)
downloadgcc-b8cbdff525821c2ca8aa8758ed48d50f101138db.zip
gcc-b8cbdff525821c2ca8aa8758ed48d50f101138db.tar.gz
gcc-b8cbdff525821c2ca8aa8758ed48d50f101138db.tar.bz2
c-parser.c (c_parser_struct_declaration): Handle declaration specifiers followed by CPP_CLOSE_BRACE.
* c-parser.c (c_parser_struct_declaration): Handle declaration specifiers followed by CPP_CLOSE_BRACE. testsuite: * gcc.dg/struct-semi-4.c: New test. From-SVN: r166516
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/c-parser.c3
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/struct-semi-4.c7
4 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 77b5e7e..f602a02 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-11-09 Joseph Myers <joseph@codesourcery.com>
+
+ * c-parser.c (c_parser_struct_declaration): Handle declaration
+ specifiers followed by CPP_CLOSE_BRACE.
+
2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index e7403b2..484dab2 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -2395,7 +2395,8 @@ c_parser_struct_declaration (c_parser *parser)
return NULL_TREE;
}
finish_declspecs (specs);
- if (c_parser_next_token_is (parser, CPP_SEMICOLON))
+ if (c_parser_next_token_is (parser, CPP_SEMICOLON)
+ || c_parser_next_token_is (parser, CPP_CLOSE_BRACE))
{
tree ret;
if (!specs->type_seen_p)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 19f58b1..651e921 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2010-11-09 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/struct-semi-4.c: New test.
+
2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/ppc-fpconv-11.c: Use -mcpu=power5+, not
diff --git a/gcc/testsuite/gcc.dg/struct-semi-4.c b/gcc/testsuite/gcc.dg/struct-semi-4.c
new file mode 100644
index 0000000..6f4dc7c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/struct-semi-4.c
@@ -0,0 +1,7 @@
+/* Test for missing semicolons in structures: anonymous structures and
+ similar cases. */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+struct s { struct { int a; } }; /* { dg-warning "no semicolon" } */
+int *f (struct s *p) { return &p->a; }