aboutsummaryrefslogtreecommitdiff
path: root/gcc/c/ChangeLog
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2017-10-25 23:53:41 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2017-10-25 23:53:41 +0000
commit1a59ccf25df49415490423382d31db15fa9c7796 (patch)
tree26de80d706d83e84643afb24d388f3b4e9e65252 /gcc/c/ChangeLog
parent0b661358bcd72a70bbf4b903db1f0f8de98a6bbd (diff)
downloadgcc-1a59ccf25df49415490423382d31db15fa9c7796.zip
gcc-1a59ccf25df49415490423382d31db15fa9c7796.tar.gz
gcc-1a59ccf25df49415490423382d31db15fa9c7796.tar.bz2
C: detect more missing semicolons (PR c/7356)
c_parser_declaration_or_fndef has logic for parsing what might be either a declaration or a function definition. This patch adds a test to detect cases where a semicolon would have terminated the decls as a declaration, where the token that follows would start a new declaration specifier, and updates the error message accordingly, with a fix-it hint. This addresses PR c/7356, fixing the case of a stray token before a #include that previously gave inscrutable output, and improving e.g.: int i int j; from: t.c:2:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int' int j; ^~~ to: t.c:1:6: error: expected ';' before 'int' int i ^ ; int j; ~~~ gcc.dg/noncompile/920923-1.c needs a slight update, as the output for the first line changes from: 920923-1.c:2:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned' typedef BYTE unsigned char; /* { dg-error "expected" } */ ^~~~~~~~ to: 920923-1.c:2:13: error: expected ';' before 'unsigned' typedef BYTE unsigned char; /* { dg-error "expected" } */ ^~~~~~~~~ ; 920923-1.c:2:1: warning: useless type name in empty declaration typedef BYTE unsigned char; /* { dg-error "expected" } */ ^~~~~~~ The patch also adds a test for PR c/44515 as a baseline. gcc/c/ChangeLog: PR c/7356 * c-parser.c (c_parser_declaration_or_fndef): Detect missing semicolons. gcc/testsuite/ChangeLog: PR c/7356 PR c/44515 * c-c++-common/pr44515.c: New test case. * gcc.dg/pr7356-2.c: New test case. * gcc.dg/pr7356.c: New test case. * gcc.dg/spellcheck-typenames.c: Update the "singed" char "TODO" case to reflect changes to output. * gcc.dg/noncompile/920923-1.c: Add dg-warning to reflect changes to output. From-SVN: r254093
Diffstat (limited to 'gcc/c/ChangeLog')
-rw-r--r--gcc/c/ChangeLog6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index b4fde0d..5d028b45 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,9 @@
+2017-10-25 David Malcolm <dmalcolm@redhat.com>
+
+ PR c/7356
+ * c-parser.c (c_parser_declaration_or_fndef): Detect missing
+ semicolons.
+
2017-10-25 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/81706