Home | History | Annotate | Download | only in Sema

Lines Matching refs:Instantiation

887     // now that we know what the current instantiation is.
983 // specialization or explicit instantiation of a class template,
2079 // This might work out to be a current instantiation, in which
2584 // instantiation to take place, in every translation unit in which such a
2691 // complete by instantiation time. Thus, do not search through the partial
2725 // instantiation is generated from that specialization.
2762 // -- If no match is found, the instantiation is generated
2770 // instantiation is handled in DoMarkVarDeclReferenced().
2866 // We actually only call this from template instantiation.
3536 // Set up a template instantiation context.
3857 // Introduce an instantiation record that describes where we are using
4812 // we should be able to diagnose that prior to instantiation.
5393 // is dependent, then we must wait until template instantiation time
5633 /// \param Loc the location of the explicit specialization or instantiation of
5692 // instantiation, warning was already emitted during pattern
5760 // An explicit instantiation shall appear in an enclosing namespace of its
5876 // FIXME: We need to delay this check until instantiation in some cases:
6216 // instantiation to take place, in every translation unit in which such a
6343 /// \brief Strips various properties off an implicit instantiation
6356 /// \brief Compute the diagnostic location for an explicit instantiation
6369 "Explicit instantiation without point of instantiation?");
6374 /// before/after an explicit template instantiation, producing diagnostics
6376 /// new specialization/instantiation will have any effect.
6379 /// instantiation.
6381 /// \param NewTSK the kind of the new explicit specialization or instantiation.
6391 /// specialization or instantiation has no effect and should be ignored.
6418 // instantiation.
6434 "Explicit instantiation without point of instantiation?");
6440 // implicit instantiation to take place, in every translation unit in
6459 // This explicit instantiation declaration is redundant (that's okay).
6471 // For a given set of template parameters, if an explicit instantiation
6473 // specialization for that template, the explicit instantiation has no
6480 // If an entity is the subject of both an explicit instantiation
6481 // declaration and an explicit instantiation definition in the same
6506 // instantiation of a template appears after a declaration of
6508 // instantiation has no effect.
6527 // For a given set of template parameters, if an explicit instantiation
6529 // specialization for that template, the explicit instantiation has no
6544 // - an explicit instantiation definition shall appear at most once
6559 llvm_unreachable("Missing specialization/instantiation case?");
6713 // FIXME: Check if the prior specialization has a point of instantiation.
6732 // instantiation to take place, in every translation unit in which such a
6788 NamedDecl *Instantiation = nullptr;
6803 Instantiation = Method;
6815 Instantiation = PrevVar;
6823 Instantiation = PrevRecord;
6831 Instantiation = PrevEnum;
6837 if (!Instantiation) {
6847 // Preserve instantiation information.
6851 cast<CXXMethodDecl>(Instantiation)->getTemplateSpecializationKind());
6855 cast<CXXRecordDecl>(Instantiation)->getTemplateSpecializationKind());
6859 Previous.addDecl(Instantiation);
6867 Diag(Instantiation->getLocation(), diag::note_specialized_decl);
6875 // instantiation to take place, in every translation unit in which such a
6882 Instantiation,
6891 Instantiation, Member->getLocation(),
6895 // Note that this is an explicit instantiation of a member.
6897 // (if it was previously an implicit instantiation). This latter step
6900 FunctionDecl *InstantiationFunction = cast<FunctionDecl>(Instantiation);
6913 VarDecl *InstantiationVar = cast<VarDecl>(Instantiation);
6925 CXXRecordDecl *InstantiationClass = cast<CXXRecordDecl>(Instantiation);
6938 EnumDecl *InstantiationEnum = cast<EnumDecl>(Instantiation);
6953 Previous.addDecl(Instantiation);
6957 /// \brief Check the scope of an explicit instantiation.
6973 // An explicit instantiation shall appear in an enclosing namespace of its
6974 // template. If the name declared in the explicit instantiation is an
6975 // unqualified name, the explicit instantiation shall appear in the
7017 // If the explicit instantiation is for a member function, a member class
7032 // Explicit instantiation of a class template specialization
7053 "Invalid enum tag in class template explicit instantiation!");
7077 // There are two forms of explicit instantiation: an explicit instantiation
7078 // definition and an explicit instantiation declaration. An explicit
7079 // instantiation declaration begins with the extern keyword. [...]
7105 // [...] An explicit instantiation shall appear in an enclosing
7123 // Even though HasNoEffect == true means that this explicit instantiation
7158 instantiation as
7159 // the user wrote in the explicit instantiation itself. This means
7162 // the explicit instantiation, rather than formatting the name based
7179 // Add the explicit instantiation into its lexical context. However,
7194 // shall be in scope at the point of the explicit instantiation of
7198 // instantiation.
7230 // Explicit instantiation of a member class of a class template.
7250 assert(!IsDependent && "explicit instantiation of dependent name not yet handled");
7271 // If the explicit instantiation is for a class or member class, the
7281 // There are two forms of explicit instantiation: an explicit instantiation
7282 // definition and an explicit instantiation declaration. An explicit
7283 // instantiation declaration begins with the extern keyword. [...]
7289 // [...] An explicit instantiation shall appear in an enclosing
7319 // at the point of an explicit instantiation of the member class.
7386 // instantiation (14.7.2) directive.
7401 // [...] An explicit instantiation of a function template shall not use the
7418 // There are two forms of explicit instantiation: an explicit instantiation
7419 // definition and an explicit instantiation declaration. An explicit
7420 // instantiation declaration begins with the extern keyword. [...]
7478 // If the explicit instantiation is for a variable, the unqualified-id
7503 // If the explicit instantiation is for a member function, a member class
7517 // Check the scope of this explicit instantiation.
7665 // If the explicit instantiation is for a member function, a member class
7885 // If the nested-name-specifier refers to the current instantiation,
7932 // Okay, it's a member of an unknown instantiation.
8016 /// \brief Rebuilds a type within the context of the current instantiation.
8075 /// instantiation.