On Apr 19, 2012, at 3:45 AM, Stepan Dyatkovskiy wrote: > ping. > Stepan Dyatkovskiy wrote: >> ping. >> Stepan Dyatkovskiy wrote: >>> ping. >>> Stepan Dyatkovskiy wrote: >>>> Hi all. >>>> Please find patch in attachment for review. >>>> I suppose that this check was not implemented yet, since I couldn't >>>> found it anywhere. The friend method availability check was inserted in >>>> Sema::ActOnFriendFunctionDecl. >>>> I also added "DeclContext *FromContext" to the AccessedEntity class. It >>>> allows to ask DelayedDiagnostic to use context that was "current" when >>>> this diagnostics was requested. It is usefull in our case, since we >>>> requested diagnostics when we're parsing class with "friend" >>>> declaration, but diagnostics is invoked for class with definition of >>>> friend member itself.
Sorry for the delay. Please include test cases when you submit patches. Also, I'm afraid your patch is out-of-date. + if (Previous.getResultKind() == LookupResult::Found && + Previous.getFoundDecl()->isCXXClassMember()) + CheckLookupAccess(Previous); This is a bit silly, because we know exactly what we're checking access to, and we're getting nothing out of delaying the diagnostic. It would be better to provide a different CheckFriendAccess entrypoint that happens to suppress diagnostic delay. Also, you'll need to do this same access check in SemaTemplateInstantiateDecl so that it happens in template instantiations. John. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
