[cfe-commits] r62382 - in /cfe/trunk: lib/Parse/ParseDecl.cpp test/Parser/objc-foreach-syntax.m

Fariborz Jahanian fjahanian at apple.com
Fri Jan 16 16:00:40 PST 2009


Author: fjahanian
Date: Fri Jan 16 18:00:40 2009
New Revision: 62382

URL: http://llvm.org/viewvc/llvm-project?rev=62382&view=rev
Log:
Catch a foreach parse error.

Added:
    cfe/trunk/test/Parser/objc-foreach-syntax.m
Modified:
    cfe/trunk/lib/Parse/ParseDecl.cpp

Modified: cfe/trunk/lib/Parse/ParseDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseDecl.cpp?rev=62382&r1=62381&r2=62382&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/ParseDecl.cpp (original)
+++ cfe/trunk/lib/Parse/ParseDecl.cpp Fri Jan 16 18:00:40 2009
@@ -364,6 +364,11 @@
   
   if (Tok.is(tok::semi)) {
     ConsumeToken();
+    // for(is key; in keys) is error.
+    if (D.getContext()  == Declarator::ForContext && isTokIdentifier_in()) {
+      Diag(Tok, diag::err_parse_error);
+      return 0;
+    }
     return Actions.FinalizeDeclaratorGroup(CurScope, LastDeclInGroup);
   }
   // If this is an ObjC2 for-each loop, this is a successful declarator

Added: cfe/trunk/test/Parser/objc-foreach-syntax.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/objc-foreach-syntax.m?rev=62382&view=auto

==============================================================================
--- cfe/trunk/test/Parser/objc-foreach-syntax.m (added)
+++ cfe/trunk/test/Parser/objc-foreach-syntax.m Fri Jan 16 18:00:40 2009
@@ -0,0 +1,7 @@
+// RUN: clang -fsyntax-only -verify %s
+
+static int test_NSURLGetResourceValueForKey( id keys )
+{
+ for ( id key; in keys) {  // expected-error {{parse error}}
+  } 
+}





More information about the cfe-commits mailing list