aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-09-08 13:09:49 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2005-09-08 06:09:49 -0700
commit8f078c08371d600c4834f90831b9ba54316ab019 (patch)
tree9ae97a6a050ddd44173676ffd5a92f1bc5cbe563 /gcc
parent8aeca7fda07b3e505cab58c650ba46f352dc6f73 (diff)
downloadgcc-8f078c08371d600c4834f90831b9ba54316ab019.zip
gcc-8f078c08371d600c4834f90831b9ba54316ab019.tar.gz
gcc-8f078c08371d600c4834f90831b9ba54316ab019.tar.bz2
re PR objc/20574 (weird error message after a parse error)
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu> PR objc/20574 PR objc/19324 * c-parser.c (c_parser_objc_method_definition): If the next token is not "{", error out and don't start the function. 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu> PR objc/20574 PR objc/19324 * objc.dg/error-1.m: New test. From-SVN: r104032
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/c-parser.c5
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/objc.dg/error-1.m6
4 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a360100..3edc2b3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
+ PR objc/20574
+ PR objc/19324
+ * c-parser.c (c_parser_objc_method_definition): If the next
+ token is not "{", error out and don't start the function.
+
+2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
+
* tree-vrp.c (extract_range_from_expr): Move the check for non
nullness after the check for gimple invariant.
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 268fa90..ce03569 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -5723,6 +5723,11 @@ c_parser_objc_method_definition (c_parser *parser)
if (pedantic)
pedwarn ("extra semicolon in method definition specified");
}
+ if (!c_parser_next_token_is (parser, CPP_OPEN_BRACE))
+ {
+ c_parser_error (parser, "expected %<{%>");
+ return;
+ }
objc_pq_context = 0;
objc_start_method_definition (decl);
add_stmt (c_parser_compound_statement (parser));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c68a2ae..e43b16c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR objc/20574
+ PR objc/19324
+ * objc.dg/error-1.m: New test.
+
2005-09-07 Richard Sandiford <richard@codesourcery.com>
PR fortran/23373
diff --git a/gcc/testsuite/objc.dg/error-1.m b/gcc/testsuite/objc.dg/error-1.m
new file mode 100644
index 0000000..86b9d7f
--- /dev/null
+++ b/gcc/testsuite/objc.dg/error-1.m
@@ -0,0 +1,6 @@
+/* { dg-options "-w" } */
+/* { dg-do compile } */
+@implementation A
++B
++C {} /* { dg-error "expected '\{' before '\\\+' token" } */
+@end