On May 13, 2011, at 8:46 AM, jahanian wrote: > > On May 12, 2011, at 6:09 PM, Douglas Gregor wrote: > >> >> On May 12, 2011, at 3:04 PM, Fariborz Jahanian wrote: >> >>> Author: fjahanian >>> Date: Thu May 12 17:04:39 2011 >>> New Revision: 131254 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=131254&view=rev >>> Log: >>> After issuing diagnostics on circular protocol list, >>> don't build circular AST in protocol's protocol list >>> when user code has introduced it. Indexer and other >>> clients may crash. // rdar://9221614 >> >> Excellent, thanks! >> >>> Modified: >>> cfe/trunk/include/clang/Sema/Sema.h >>> cfe/trunk/lib/Sema/SemaDeclObjC.cpp >>> >>> Modified: cfe/trunk/include/clang/Sema/Sema.h >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=131254&r1=131253&r2=131254&view=diff >>> ============================================================================== >>> --- cfe/trunk/include/clang/Sema/Sema.h (original) >>> +++ cfe/trunk/include/clang/Sema/Sema.h Thu May 12 17:04:39 2011 >>> @@ -4739,7 +4739,8 @@ >>> void CheckForwardProtocolDeclarationForCircularDependency( >>> IdentifierInfo *PName, >>> SourceLocation &PLoc, SourceLocation PrevLoc, >>> - const ObjCList<ObjCProtocolDecl> &PList); >>> + const ObjCList<ObjCProtocolDecl> &PList, >>> + bool &err); >> >> Why not just return true on error, as we commonly do in Clang? Does the >> reference variable have any benefit? > > Generally, we return 'true' when on first error detection routine returns. In > this case, we want to detect as many cycles as we can and > yet return the 'error' flag if any one was found. Probably can do the return > thing too but I am sure it makes the code path unnecessarily > more complicated. Will still look into this.
In r131297. - Fariborz _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
