Hi Fariborz, Should isObjCObjectPointerType return true for block pointers?
Also, I think we should fix the warning for a real type mismatch to be more meaningful. Selector element mismatch doesn't make any sense... - Daniel On Fri, Aug 14, 2009 at 2:53 PM, Fariborz Jahanian<[email protected]> wrote: > 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) { > + ; > + } > + > +} > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
