Lines Matching refs:Instantiation
899 // now that we know what the current instantiation is.
994 // specialization or explicit instantiation of a class template,
2041 // This might work out to be a current instantiation, in which
2478 // instantiation to take place, in every translation unit in which such a
2583 // complete by instantiation time. Thus, do not search through the partial
2619 // instantiation is generated from that specialization.
2656 // -- If no match is found, the instantiation is generated
2666 // instantiation is handled in DoMarkVarDeclReferenced().
2759 // We actually only call this from template instantiation.
3399 // Set up a template instantiation context.
3714 // Introduce an instantiation record that describes where we are using
4602 // we should be able to diagnose that prior to instantiation.
5181 // is dependent, then we must wait until template instantiation time
5408 /// \param Loc the location of the explicit specialization or instantiation of
5467 // instantiation, warning was already emitted during pattern
5556 // FIXME: check for specialization-after-instantiation errors and such.
5972 // instantiation to take place, in every translation unit in which such a
6099 /// \brief Strips various properties off an implicit instantiation
6114 /// \brief Compute the diagnostic location for an explicit instantiation
6127 "Explicit instantiation without point of instantiation?");
6132 /// before/after an explicit template instantiation, producing diagnostics
6134 /// new specialization/instantiation will have any effect.
6137 /// instantiation.
6139 /// \param NewTSK the kind of the new explicit specialization or instantiation.
6149 /// specialization or instantiation has no effect and should be ignored.
6173 // instantiation.
6189 "Explicit instantiation without point of instantiation?");
6195 // implicit instantiation to take place, in every translation unit in
6214 // This explicit instantiation declaration is redundant (that's okay).
6226 // For a given set of template parameters, if an explicit instantiation
6228 // specialization for that template, the explicit instantiation has no
6235 // If an entity is the subject of both an explicit instantiation
6236 // declaration and an explicit instantiation definition in the same
6261 // instantiation of a template appears after a declaration of
6263 // instantiation has no effect.
6282 // For a given set of template parameters, if an explicit instantiation
6284 // specialization for that template, the explicit instantiation has no
6299 // - an explicit instantiation definition shall appear at most once
6310 llvm_unreachable("Missing specialization/instantiation case?");
6464 // FIXME: Check if the prior specialization has a point of instantiation.
6483 // instantiation to take place, in every translation unit in which such a
6539 NamedDecl *Instantiation = 0;
6551 Instantiation = Method;
6563 Instantiation = PrevVar;
6571 Instantiation = PrevRecord;
6579 Instantiation = PrevEnum;
6585 if (!Instantiation) {
6595 // Preserve instantiation information.
6599 cast<CXXMethodDecl>(Instantiation)->getTemplateSpecializationKind());
6603 cast<CXXRecordDecl>(Instantiation)->getTemplateSpecializationKind());
6607 Previous.addDecl(Instantiation);
6615 Diag(Instantiation->getLocation(), diag::note_specialized_decl);
6623 // instantiation to take place, in every translation unit in which such a
6630 Instantiation,
6639 Instantiation, Member->getLocation(),
6643 // Note that this is an explicit instantiation of a member.
6645 // (if it was previously an implicit instantiation). This latter step
6648 FunctionDecl *InstantiationFunction = cast<FunctionDecl>(Instantiation);
6661 VarDecl *InstantiationVar = cast<VarDecl>(Instantiation);
6673 CXXRecordDecl *InstantiationClass = cast<CXXRecordDecl>(Instantiation);
6686 EnumDecl *InstantiationEnum = cast<EnumDecl>(Instantiation);
6701 Previous.addDecl(Instantiation);
6705 /// \brief Check the scope of an explicit instantiation.
6721 // An explicit instantiation shall appear in an enclosing namespace of its
6722 // template. If the name declared in the explicit instantiation is an
6723 // unqualified name, the explicit instantiation shall appear in the
6765 // If the explicit instantiation is for a member function, a member class
6780 // Explicit instantiation of a class template specialization
6801 "Invalid enum tag in class template explicit instantiation!");
6825 // There are two forms of explicit instantiation: an explicit instantiation
6826 // definition and an explicit instantiation declaration. An explicit
6827 // instantiation declaration begins with the extern keyword. [...]
6854 // [...] An explicit instantiation shall appear in an enclosing
6872 // Even though HasNoEffect == true means that this explicit instantiation
6907 // Build the fully-sugared type for this explicit instantiation as
6908 // the user wrote in the explicit instantiation itself. This means
6911 // the explicit instantiation, rather than formatting the name based
6928 // Add the explicit instantiation into its lexical context. However,
6943 // shall be in scope at the point of the explicit instantiation of
6947 // instantiation.
6978 // Explicit instantiation of a member class of a class template.
6997 assert(!IsDependent && "explicit instantiation of dependent name not yet handled");
7018 // If the explicit instantiation is for a class or member class, the
7028 // There are two forms of explicit instantiation: an explicit instantiation
7029 // definition and an explicit instantiation declaration. An explicit
7030 // instantiation declaration begins with the extern keyword. [...]
7036 // [...] An explicit instantiation shall appear in an enclosing
7066 // at the point of an explicit instantiation of the member class.
7133 // instantiation (14.7.2) directive.
7148 // [...] An explicit instantiation of a function template shall not use the
7165 // There are two forms of explicit instantiation: an explicit instantiation
7166 // definition and an explicit instantiation declaration. An explicit
7167 // instantiation declaration begins with the extern keyword. [...]
7245 // If the explicit instantiation is for a member function, a member class
7252 // C++1y If the explicit instantiation is for a variable, the
7262 // Check the scope of this explicit instantiation.
7414 // If the explicit instantiation is for a member function, a member class
7636 // If the nested-name-specifier refers to the current instantiation,
7683 // Okay, it's a member of an unknown instantiation.
7767 /// \brief Rebuilds a type within the context of the current instantiation.
7826 /// instantiation.