[cfe-commits] r79050 - in /cfe/trunk: lib/Sema/SemaStmt.cpp test/SemaObjC/blocks.m

Fariborz Jahanian fjahanian at apple.com
Fri Aug 14 14:53:27 PDT 2009


Author: fjahanian
Date: Fri Aug 14 16:53:27 2009
New Revision: 79050

URL: http://llvm.org/viewvc/llvm-project?rev=79050&view=rev
Log:
objc2's foreach statement's selector type can be
a block pointer too.

Modified:
    cfe/trunk/lib/Sema/SemaStmt.cpp
    cfe/trunk/test/SemaObjC/blocks.m

Modified: cfe/trunk/lib/Sema/SemaStmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=79050&r1=79049&r2=79050&view=diff

==============================================================================
--- cfe/trunk/lib/Sema/SemaStmt.cpp (original)
+++ cfe/trunk/lib/Sema/SemaStmt.cpp Fri Aug 14 16:53:27 2009
@@ -693,7 +693,8 @@
 
       FirstType = static_cast<Expr*>(First)->getType();        
     }
-    if (!FirstType->isObjCObjectPointerType())
+    if (!FirstType->isObjCObjectPointerType() && 
+        !FirstType->isBlockPointerType())
         Diag(ForLoc, diag::err_selector_element_type)
           << FirstType << First->getSourceRange();
   }

Modified: cfe/trunk/test/SemaObjC/blocks.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/blocks.m?rev=79050&r1=79049&r2=79050&view=diff

==============================================================================
--- cfe/trunk/test/SemaObjC/blocks.m (original)
+++ cfe/trunk/test/SemaObjC/blocks.m Fri Aug 14 16:53:27 2009
@@ -44,3 +44,14 @@
   P = ^itf() {};          // expected-error {{Objective-C interface type 'itf' cannot be returned by value}}
   P = ^itf{};             // expected-error {{Objective-C interface type 'itf' cannot be returned by value}}
 }
+
+
+int foo9() {
+  typedef void (^DVTOperationGroupScheduler)();
+  id _suboperationSchedulers;
+
+  for (DVTOperationGroupScheduler scheduler in _suboperationSchedulers) {
+            ;
+        }
+
+}





More information about the cfe-commits mailing list