Home | History | Annotate | Download | only in Sema

Lines Matching refs:Instantiation

887     // now that we know what the current instantiation is.
1008 // specialization or explicit instantiation of a class template,
2161 // This might work out to be a current instantiation, in which
2650 // instantiation to take place, in every translation unit in which such a
2758 // complete by instantiation time. Thus, do not search through the partial
2792 // instantiation is generated from that specialization.
2829 // -- If no match is found, the instantiation is generated
2837 // instantiation is handled in DoMarkVarDeclReferenced().
2933 // We actually only call this from template instantiation.
3611 // Set up a template instantiation context.
3945 // Introduce an instantiation record that describes where we are using
5013 // we should be able to diagnose that prior to instantiation.
5594 // is dependent, then we must wait until template instantiation time
5834 /// \param Loc the location of the explicit specialization or instantiation of
5893 // instantiation, warning was already emitted during pattern
5963 // An explicit instantiation shall appear in an enclosing namespace of its
6079 // FIXME: We need to delay this check until instantiation in some cases:
6430 // instantiation to take place, in every translation unit in which such a
6546 /// \brief Strips various properties off an implicit instantiation
6556 /// \brief Compute the diagnostic location for an explicit instantiation
6569 "Explicit instantiation without point of instantiation?");
6574 /// before/after an explicit template instantiation, producing diagnostics
6576 /// new specialization/instantiation will have any effect.
6579 /// instantiation.
6581 /// \param NewTSK the kind of the new explicit specialization or instantiation.
6591 /// specialization or instantiation has no effect and should be ignored.
6618 // instantiation.
6634 "Explicit instantiation without point of instantiation?");
6640 // implicit instantiation to take place, in every translation unit in
6659 // This explicit instantiation declaration is redundant (that's okay).
6671 // For a given set of template parameters, if an explicit instantiation
6673 // specialization for that template, the explicit instantiation has no
6680 // If an entity is the subject of both an explicit instantiation
6681 // declaration and an explicit instantiation definition in the same
6706 // instantiation of a template appears after a declaration of
6708 // instantiation has no effect.
6727 // For a given set of template parameters, if an explicit instantiation
6729 // specialization for that template, the explicit instantiation has no
6744 // - an explicit instantiation definition shall appear at most once
6759 llvm_unreachable("Missing specialization/instantiation case?");
6923 // FIXME: Check if the prior specialization has a point of instantiation.
6942 // instantiation to take place, in every translation unit in which such a
6998 NamedDecl *Instantiation = nullptr;
7013 Instantiation = Method;
7025 Instantiation = PrevVar;
7033 Instantiation = PrevRecord;
7041 Instantiation = PrevEnum;
7047 if (!Instantiation) {
7057 // Preserve instantiation information.
7061 cast<CXXMethodDecl>(Instantiation)->getTemplateSpecializationKind());
7065 cast<CXXRecordDecl>(Instantiation)->getTemplateSpecializationKind());
7069 Previous.addDecl(Instantiation);
7077 Diag(Instantiation->getLocation(), diag::note_specialized_decl);
7085 // instantiation to take place, in every translation unit in which such a
7092 Instantiation,
7101 Instantiation, Member->getLocation(),
7105 // Note that this is an explicit instantiation of a member.
7107 // (if it was previously an implicit instantiation). This latter step
7110 FunctionDecl *InstantiationFunction = cast<FunctionDecl>(Instantiation);
7123 VarDecl *InstantiationVar = cast<VarDecl>(Instantiation);
7135 CXXRecordDecl *InstantiationClass = cast<CXXRecordDecl>(Instantiation);
7148 EnumDecl *InstantiationEnum = cast<EnumDecl>(Instantiation);
7163 Previous.addDecl(Instantiation);
7167 /// \brief Check the scope of an explicit instantiation.
7183 // An explicit instantiation shall appear in an enclosing namespace of its
7184 // template. If the name declared in the explicit instantiation is an
7185 // unqualified name, the explicit instantiation shall appear in the
7227 // If the explicit instantiation is for a member function, a member class
7242 // Explicit instantiation of a class template specialization
7263 "Invalid enum tag in class template explicit instantiation!");
7287 // There are two forms of explicit instantiation: an explicit instantiation
7288 // definition and an explicit instantiation declaration. An explicit
7289 // instantiation declaration begins with the extern keyword. [...]
7295 // Check for dllexport class template instantiation declarations.
7333 // [...] An explicit instantiation shall appear in an enclosing
7351 // Even though HasNoEffect == true means that this explicit instantiation
7386 // Build the fully-sugared type for this explicit instantiation as
7387 // the user wrote in the explicit instantiation itself. This means
7390 // the explicit instantiation, rather than formatting the name based
7407 // Add the explicit instantiation into its lexical context. However,
7422 // shall be in scope at the point of the explicit instantiation of
7426 // instantiation.
7452 // In the MS ABI, an explicit instantiation definition can add a dll
7453 // attribute to a template with a previous instantiation declaration.
7483 // Explicit instantiation of a member class of a class template.
7503 assert(!IsDependent && "explicit instantiation of dependent name not yet handled");
7524 // If the explicit instantiation is for a class or member class, the
7534 // There are two forms of explicit instantiation: an explicit instantiation
7535 // definition and an explicit instantiation declaration. An explicit
7536 // instantiation declaration begins with the extern keyword. [...]
7542 // [...] An explicit instantiation shall appear in an enclosing
7572 // at the point of an explicit instantiation of the member class.
7639 // instantiation (14.7.2) directive.
7654 // [...] An explicit instantiation of a function template shall not use the
7671 // There are two forms of explicit instantiation: an explicit instantiation
7672 // definition and an explicit instantiation declaration. An explicit
7673 // instantiation declaration begins with the extern keyword. [...]
7731 // If the explicit instantiation is for a variable, the unqualified-id
7756 // If the explicit instantiation is for a member function, a member class
7770 // Check the scope of this explicit instantiation.
7877 // In an explicit instantiation an exception-specification may be specified,
7879 // If an exception-specification is specified in an explicit instantiation
7941 // If the explicit instantiation is for a member function, a member class
8161 // If the nested-name-specifier refers to the current instantiation,
8208 // Okay, it's a member of an unknown instantiation.
8293 /// \brief Rebuilds a type within the context of the current instantiation.
8352 /// instantiation.