Home | History | Annotate | Download | only in AST

Lines Matching full:linkage

107 /// Kinds of LV computation.  The linkage side of the computation is
131 /// Do an LV computation when we only care about the linkage.
239 /// \brief Get the most restrictive linkage for the types in the given
296 /// getLVForDecl - Get the linkage and visibility for the given declaration.
311 /// \brief Get the most restrictive linkage for the types and
377 /// Merge in template-related linkage and visibility for the given
460 /// Merge in template-related linkage and visibility for the given
511 /// Merge in template-related linkage and visibility for the given
585 // A name having namespace scope (3.3.6) has internal linkage if it
597 // nor previously declared to have external linkage; or (there is no
624 // A non-member function template can have internal linkage; any
625 // other template name shall have external linkage.
642 // within them internal linkage, not unique external linkage.
652 // scope and no storage-class specifier, its linkage is
695 // A name having namespace scope has external linkage if it is the
698 // - an object or reference, unless it has internal linkage; or
705 // A type without linkage shall not be used as the type of a
706 // variable or function with external linkage unless
707 // - the entity has C language linkage, or
720 // because of this, but unique-external linkage suits us.
743 // - a function, unless it has internal linkage; or
746 // type unless it has C linkage (see comment above about variables
758 // unique-external linkage, it's not legally usable from outside
759 // this translation unit. However, we should use the C linkage
764 // return type, we can't compute the linkage of that type because it could
765 // require looking at the linkage of this function, and we don't need this
787 // for linkage purposes (7.1.3); or
790 // has the typedef name for linkage purposes (7.1.3); or
792 // Unnamed tags have no linkage.
797 // linkage of the template and template arguments. We're at file
803 // - an enumerator belonging to an enumeration with external linkage;
812 // internal linkage (Clause 14);
824 // By extension, we assign external linkage to Objective-C
830 // A typedef declaration has linkage if it gives a type a name for
831 // linkage purposes.
835 // Everything not covered here has no linkage.
840 // If we ended up with non-external linkage, visibility should
850 // Only certain class members have linkage. Note that fields don't
851 // really have linkage, but it's convenient to say they do for the
852 // purposes of calculating linkage of pointer-to-data-member
855 // Templates also don't officially have linkage, but since we ignore
857 // linkage and visibility of a template specialization, we might hit
859 // consider its linkage.
892 // If the class already has unique-external linkage, we can't improve.
908 // linkage, it's not legally usable from outside this translation unit.
910 // auto-deduced return type, we can't compute the linkage of that type
911 // because it could require looking at the linkage of this function, and we
923 // If this is a method template specialization, use the linkage for
957 // Modify the variable's linkage by its type, but ignore the
1030 Linkage NamedDecl::getLinkageInternal() const {
1119 // This lambda has its linkage/visibility determined by its owner.
1234 // linkage.
1240 // functions, types, templates, namespaces, and values ever have linkage.
1244 // declaration, so they do *not* have linkage.
1255 // C++ [basic.link]p4: an enumerator has the linkage of its enumeration.
1260 // A typedef declaration has linkage if it gives a type a name for
1261 // linkage purposes.
1289 // This lambda has its linkage/visibility determined:
1313 // Handle linkage for namespace-scope names.
1321 // that the class or enumeration has the typedef name for linkage
1322 // purposes (7.1.3), has external linkage if the name of the class
1323 // has external linkage.
1330 // linkage. If there is a visible declaration of an entity with
1331 // linkage having the same name and type, ignoring entities
1334 // the linkage of the previous declaration. If there is more than
1337 // external linkage.
1342 // Names not covered by these rules have no linkage.
1372 // We have just computed the linkage for this decl. By induction we know
1853 // C++ [dcl.link]p1: All function types, function names with external linkage,
1854 // and variable names with external linkage have a language linkage.
1858 // Language linkage is a C++ concept, but saying that everything else in C has
1859 // C language linkage fits the implementation nicely.
1864 // C++ [dcl.link]p4: A C language linkage is ignored in determining the
1865 // language linkage of the names of class members and the function type of
1872 // will have C language linkage. If the first one is not in an extern "C"
1882 // language linkage or no language linkage.
1914 // specifier or a linkage-specification and neither an initializer [...],
1972 // A declaration directly contained in a linkage-specification is treated
1974 // the linkage of the declared name and whether it is a definition.