Lines Matching defs:Instantiation
896 // now that we know what the current instantiation is.
991 // specialization or explicit instantiation of a class template,
2043 // This might work out to be a current instantiation, in which
2308 // We actually only call this from template instantiation.
2941 // Set up a template instantiation context.
3256 // Introduce an instantiation record that describes where we are using
4145 // we should be able to diagnose that prior to instantiation.
4724 // is dependent, then we must wait until template instantiation time
4951 /// \param Loc the location of the explicit specialization or instantiation of
5008 // instantiation, warning was already emitted during pattern
5097 // FIXME: check for specialization-after-instantiation errors and such.
5521 // instantiation to take place, in every translation unit in which such a
5648 /// \brief Strips various properties off an implicit instantiation
5663 /// \brief Compute the diagnostic location for an explicit instantiation
5676 "Explicit instantiation without point of instantiation?");
5681 /// before/after an explicit template instantiation, producing diagnostics
5683 /// new specialization/instantiation will have any effect.
5686 /// instantiation.
5688 /// \param NewTSK the kind of the new explicit specialization or instantiation.
5698 /// specialization or instantiation has no effect and should be ignored.
5722 // instantiation.
5738 "Explicit instantiation without point of instantiation?");
5744 // implicit instantiation to take place, in every translation unit in
5763 // This explicit instantiation declaration is redundant (that's okay).
5775 // For a given set of template parameters, if an explicit instantiation
5777 // specialization for that template, the explicit instantiation has no
5784 // If an entity is the subject of both an explicit instantiation
5785 // declaration and an explicit instantiation definition in the same
5810 // instantiation of a template appears after a declaration of
5812 // instantiation has no effect.
5831 // For a given set of template parameters, if an explicit instantiation
5833 // specialization for that template, the explicit instantiation has no
5848 // - an explicit instantiation definition shall appear at most once
5859 llvm_unreachable("Missing specialization/instantiation case?");
6012 // FIXME: Check if the prior specialization has a point of instantiation.
6031 // instantiation to take place, in every translation unit in which such a
6088 NamedDecl *Instantiation = 0;
6100 Instantiation = Method;
6112 Instantiation = PrevVar;
6120 Instantiation = PrevRecord;
6128 Instantiation = PrevEnum;
6134 if (!Instantiation) {
6144 // Preserve instantiation information.
6148 cast<CXXMethodDecl>(Instantiation)->getTemplateSpecializationKind());
6152 cast<CXXRecordDecl>(Instantiation)->getTemplateSpecializationKind());
6156 Previous.addDecl(Instantiation);
6164 Diag(Instantiation->getLocation(), diag::note_specialized_decl);
6172 // instantiation to take place, in every translation unit in which such a
6179 Instantiation,
6188 Instantiation, Member->getLocation(),
6192 // Note that this is an explicit instantiation of a member.
6194 // (if it was previously an implicit instantiation). This latter step
6197 FunctionDecl *InstantiationFunction = cast<FunctionDecl>(Instantiation);
6210 VarDecl *InstantiationVar = cast<VarDecl>(Instantiation);
6223 CXXRecordDecl *InstantiationClass = cast<CXXRecordDecl>(Instantiation);
6236 EnumDecl *InstantiationEnum = cast<EnumDecl>(Instantiation);
6251 Previous.addDecl(Instantiation);
6255 /// \brief Check the scope of an explicit instantiation.
6271 // An explicit instantiation shall appear in an enclosing namespace of its
6272 // template. If the name declared in the explicit instantiation is an
6273 // unqualified name, the explicit instantiation shall appear in the
6315 // If the explicit instantiation is for a member function, a member class
6330 // Explicit instantiation of a class template specialization
6353 "Invalid enum tag in class template explicit instantiation!");
6367 // There are two forms of explicit instantiation: an explicit instantiation
6368 // definition and an explicit instantiation declaration. An explicit
6369 // instantiation declaration begins with the extern keyword. [...]
6396 // [...] An explicit instantiation shall appear in an enclosing
6414 // Even though HasNoEffect == true means that this explicit instantiation
6449 // Build the fully-sugared type for this explicit instantiation as
6450 // the user wrote in the explicit instantiation itself. This means
6453 // the explicit instantiation, rather than formatting the name based
6469 // Add the explicit instantiation into its lexical context. However,
6484 // shall be in scope at the point of the explicit instantiation of
6488 // instantiation.
6519 // Explicit instantiation of a member class of a class template.
6538 assert(!IsDependent && "explicit instantiation of dependent name not yet handled");
6559 // If the explicit instantiation is for a class or member class, the
6569 // There are two forms of explicit instantiation: an explicit instantiation
6570 // definition and an explicit instantiation declaration. An explicit
6571 // instantiation declaration begins with the extern keyword. [...]
6577 // [...] An explicit instantiation shall appear in an enclosing
6607 // at the point of an explicit instantiation of the member class.
6674 // instantiation (14.7.2) directive.
6689 // [...] An explicit instantiation of a function template shall not use the
6706 // There are two forms of explicit instantiation: an explicit instantiation
6707 // definition and an explicit instantiation declaration. An explicit
6708 // instantiation declaration begins with the extern keyword. [...]
6746 // If the explicit instantiation is for a member function, a member class
6757 // Check the scope of this explicit instantiation.
6886 // If the explicit instantiation is for a member function, a member class
7108 // If the nested-name-specifier refers to the current instantiation,
7155 // Okay, it's a member of an unknown instantiation.
7239 /// \brief Rebuilds a type within the context of the current instantiation.
7298 /// instantiation.