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

Reply via email to