Home | History | Annotate | Download | only in Sema

Lines Matching refs:Friend

604   // C++11 [dcl.fct.default]p4: If a friend declaration specifies a default
11533 /// \brief Perform semantic analysis of the given friend type declaration.
11535 /// \returns A friend declaration that.
11539 assert(TSInfo && "NULL TypeSourceInfo for friend type declaration");
11544 // C++03 [class.friend]p2:
11545 // An elaborated-type-specifier shall be used in a friend declaration
11550 // Do not complain about the form of friend template types during
11588 // C++11 [class.friend]p3:
11589 // A friend declaration that does not declare a function shall have one
11591 // friend elaborated-type-specifier ;
11592 // friend simple-type-specifier ;
11593 // friend typename-specifier ;
11598 // If the type specifier in a friend declaration designates a (possibly
11599 // cv-qualified) class type, that class is declared as a friend; otherwise,
11600 // the friend declaration is ignored.
11606 /// Handle a friend tag declaration where the scope specifier was
11622 TagLoc, NameLoc, SS, nullptr, TempParamLists, /*friend*/ true,
11657 // friend. TODO: for source fidelity, remember the headers.
11694 FriendDecl *Friend = FriendDecl::Create(Context, CurContext, NameLoc,
11696 Friend->setAccess(AS_public);
11697 CurContext->addDecl(Friend);
11698 return Friend;
11705 // Handle the case of a templated-scope friend class. e.g.
11718 FriendDecl *Friend = FriendDecl::Create(Context, CurContext, NameLoc,
11720 Friend->setAccess(AS_public);
11721 Friend->setUnsupportedFriend(true);
11722 CurContext->addDecl(Friend);
11723 return Friend;
11727 /// Handle a friend type declaration. This works in tandem with
11730 /// Notes on friend class templates:
11732 /// We generally treat friend class declarations as if they were
11734 /// in a friend declaration is required to obey the restrictions of a
11740 /// friend class A<T>::B<unsigned>;
11743 /// template <> template \<class T> friend class A<int>::B;
11752 // friend templates because ActOnTag never produces a ClassTemplateDecl
11768 // template <T> friend A<T>::foo;
11769 // where deciding whether a class C is a friend or not now hinges
11772 // (which we declare (by fiat) elaborated friend declarations to
11775 // FIXME: handle "template <> friend class A<T>;", which
11783 // C++98 [class.friend]p1: A friend of a class is a function
11791 // friend one of your own members (it's not, however, worthless to
11792 // friend a member of an arbitrary specialization of your template).
11823 // C++ [class.friend]p1
11824 // A friend of a class is a function or class....
11842 // - If a friend declaration in a non-local class first declares a
11843 // class or function, the friend class or function is a member
11845 // - The name of the friend is not found by simple name lookup
11849 // - If a friend function is called, its name may be found by the
11853 // declared as a friend, scopes outside the innermost enclosing
11882 // C++11 [class.friend]p11:
11883 // If a friend declaration appears in a local class and the name
11886 // innermost enclosing non-class scope. For a friend function
11911 // C++ [class.friend]p6:
11912 // A function can be defined in a friend declaration of a class if and
11924 // If the name in a friend declaration is neither qualified nor
11996 // C++ [class.friend]p1: A friend of a class is a function or
12005 // C++ [class.friend]p6:
12006 // A function can be defined in a friend declaration of a class if and
12025 // C++ [class.friend]p6:
12026 // A function can be defined in a friend declaration of a class if and
12034 assert(isa<CXXRecordDecl>(DC) && "friend declaration not in class?");
12099 // C++11 [dcl.fct.default]p4: If a friend declaration specifies a