Ping.

On Wed, Apr 16, 2014 at 8:38 PM, Nikola Smiljanic <popiz...@gmail.com>wrote:

> LocStart in CheckFriendTypeDecl is the start of DeclSpec range. This is OK
> for checking that declaration starts with 'friend' keyword but is redundant
> when it comes to FriendDecl creation. Location of the keyword is already
> passed as FriendLoc.
>
> I've added another parameter to this function that points to location of
> the type from the declaration. The call to CheckFriendTypeDecl from
> SemaTemplateInstantiateDecl now isn't technically correct because it's
> passing the the type location as LocStart. But the error that's checked for
> using this parameter can only happen inside class declaration, not
> instantiated template, I think :)
>
> Is there a way to test this? I'm not seeing any regressions.
>
> struct A{};
> typedef A Atypedef;
>
> namespace ns { struct B{}; }
>
>  template <typename T>
> class C
> {
> friend class A; // points to A
> friend Atypedef; // points to Atypedef
> friend T; //  points to T
> friend decltype(whatever); // points to decltype
> friend ns::B; // points to B
> friend typename T::something; // points to something
> }
>
_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to