On Dec 17, 2008, at 10:35 AM, steve naroff wrote: > > On Dec 17, 2008, at 1:25 PM, Fariborz Jahanian wrote: > >> Author: fjahanian >> Date: Wed Dec 17 12:25:24 2008 >> New Revision: 61144 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=61144&view=rev >> Log: >> Added comment to Steve's patch to clarify the case. >> >> >> Modified: >> cfe/trunk/lib/AST/DeclObjC.cpp >> >> Modified: cfe/trunk/lib/AST/DeclObjC.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclObjC.cpp?rev=61144&r1=61143&r2=61144&view=diff >> >> = >> = >> = >> = >> = >> = >> = >> = >> = >> ===================================================================== >> --- cfe/trunk/lib/AST/DeclObjC.cpp (original) >> +++ cfe/trunk/lib/AST/DeclObjC.cpp Wed Dec 17 12:25:24 2008 >> @@ -369,6 +369,9 @@ >> /// >> FieldDecl *ObjCInterfaceDecl::lookupFieldDeclForIvar(ASTContext >> &Context, >> const >> ObjCIvarDecl *ivar) { >> + /* When a super class's ivar is referenced in the subclass >> method with no ivar >> + of its own, record for the sub-class is not built yet. Build >> it lazily >> + here. */ > > Fariborz, > > Thanks for adding the comment, however I'm hoping it's temporary. > > I think it makes sense to always build it lazily (which I believe is > your plan). > > Currently, the only lazy case is when you have no ivars & no curlies: > > @interface X : S @end > > Note that this obscure case is *not* lazy: > > @interface X : S { } @end > > From my perspective, having some cases be lazy and some cases not be > lazy is confusing (and more likely to be buggy). > > No rush on this (since the patch/comment will work fine for now). I > just wanted to make sure we revisit this...
Yes. I have another case of lazily building it. I will revisit this as soon as I am done with something else. Looks to me that lazily building always works and it was 'lazy' of me not to do it to begin with :). - fariborz > > > Thanks, > > snaroff > >> >> if (!RecordForDecl) >> addRecordToClass(Context); >> assert(RecordForDecl && "lookupFieldDeclForIvar no storage for >> class"); >> >> >> _______________________________________________ >> 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
