Home | History | Annotate | Download | only in Sema

Lines Matching refs:TemplateArgument

85                         const TemplateArgument &Param,
86 TemplateArgument Arg,
130 const TemplateArgument *Params, unsigned NumParams,
131 const TemplateArgument *Args, unsigned NumArgs,
178 case TemplateArgument::Null:
181 case TemplateArgument::Type:
183 if (Y.getKind() == TemplateArgument::Type &&
189 case TemplateArgument::Integral:
193 if (Y.getKind() == TemplateArgument::Expression ||
194 Y.getKind() == TemplateArgument::Declaration ||
195 (Y.getKind() == TemplateArgument::Integral &&
204 case TemplateArgument::Template:
205 if (Y.getKind() == TemplateArgument::Template &&
212 case TemplateArgument::TemplateExpansion:
213 if (Y.getKind() == TemplateArgument::TemplateExpansion &&
221 case TemplateArgument::Expression:
225 if (Y.getKind() == TemplateArgument::Integral ||
226 Y.getKind() == TemplateArgument::Declaration)
230 if (Y.getKind() == TemplateArgument::Expression) {
242 case TemplateArgument::Declaration:
245 if (Y.getKind() == TemplateArgument::Expression)
250 if (Y.getKind() == TemplateArgument::Integral)
255 if (Y.getKind() == TemplateArgument::Declaration &&
262 case TemplateArgument::Pack:
263 if (Y.getKind() != TemplateArgument::Pack ||
267 for (TemplateArgument::pack_iterator XA = X.pack_begin(),
281 llvm_unreachable("Invalid TemplateArgument Kind!");
406 Info.FirstArg = TemplateArgument(Param);
407 Info.SecondArg = TemplateArgument(Arg);
561 Deduced[PackIndices[I]] = TemplateArgument();
565 const TemplateArgument *ExplicitArgs;
605 NewPack = DeducedTemplateArgument(TemplateArgument(0, 0));
607 TemplateArgument *ArgumentPack
608 = new (S.Context) TemplateArgument [NewlyDeducedPacks[I].size()];
612 = DeducedTemplateArgument(TemplateArgument(ArgumentPack,
997 Info.FirstArg = TemplateArgument(Param);
998 Info.SecondArg = TemplateArgument(Arg);
1024 Info.FirstArg = TemplateArgument(Param);
1025 Info.SecondArg = TemplateArgument(Arg);
1059 Info.FirstArg = TemplateArgument(ParamIn);
1060 Info.SecondArg = TemplateArgument(ArgIn);
1551 const TemplateArgument &Param,
1552 TemplateArgument Arg,
1562 case TemplateArgument::Null:
1565 case TemplateArgument::Type:
1566 if (Arg.getKind() == TemplateArgument::Type)
1575 case TemplateArgument::Template:
1576 if (Arg.getKind() == TemplateArgument::Template)
1584 case TemplateArgument::TemplateExpansion:
1587 case TemplateArgument::Declaration:
1588 if (Arg.getKind() == TemplateArgument::Declaration &&
1596 case TemplateArgument::Integral:
1597 if (Arg.getKind() == TemplateArgument::Integral) {
1606 if (Arg.getKind() == TemplateArgument::Expression) {
1616 case TemplateArgument::Expression: {
1619 if (Arg.getKind() == TemplateArgument::Integral)
1625 if (Arg.getKind() == TemplateArgument::Expression)
1628 if (Arg.getKind() == TemplateArgument::Declaration)
1640 case TemplateArgument::Pack:
1644 llvm_unreachable("Invalid TemplateArgument Kind!");
1655 static bool hasTemplateArgumentForDeduction(const TemplateArgument *&Args,
1661 const TemplateArgument &Arg = Args[ArgIdx];
1662 if (Arg.getKind() != TemplateArgument::Pack)
1674 static bool hasPackExpansionBeforeEnd(const TemplateArgument *Args,
1678 const TemplateArgument &Arg = Args[ArgIdx];
1681 if (Args[ArgIdx].getKind() == TemplateArgument::Pack) {
1702 const TemplateArgument *Params, unsigned NumParams,
1703 const TemplateArgument *Args, unsigned NumArgs,
1754 TemplateArgument Pattern = Params[ParamIdx].getPackExpansionPattern();
1846 const TemplateArgument &X,
1847 const TemplateArgument &Y) {
1852 case TemplateArgument::Null:
1855 case TemplateArgument::Type:
1859 case TemplateArgument::Declaration:
1862 case TemplateArgument::Template:
1863 case TemplateArgument::TemplateExpansion:
1869 case TemplateArgument::Integral:
1872 case TemplateArgument::Expression: {
1879 case TemplateArgument::Pack:
1883 for (TemplateArgument::pack_iterator XP = X.pack_begin(),
1893 llvm_unreachable("Invalid TemplateArgument Kind!");
1912 const TemplateArgument &Arg,
1916 case TemplateArgument::Null:
1919 case TemplateArgument::Type:
1923 case TemplateArgument::Declaration: {
1927 return TemplateArgumentLoc(TemplateArgument(E), E);
1930 case TemplateArgument::Integral: {
1933 return TemplateArgumentLoc(TemplateArgument(E), E);
1936 case TemplateArgument::Template:
1937 case TemplateArgument::TemplateExpansion: {
1945 if (Arg.getKind() == TemplateArgument::Template)
1955 case TemplateArgument::Expression:
1958 case TemplateArgument::Pack:
1962 llvm_unreachable("Invalid TemplateArgument Kind!");
1975 SmallVectorImpl<TemplateArgument> &Output) {
1976 if (Arg.getKind() == TemplateArgument::Pack) {
1979 SmallVector<TemplateArgument, 2> PackedArgsBuilder;
1980 for (TemplateArgument::pack_iterator PA = Arg.pack_begin(),
1999 Output.push_back(TemplateArgument::CreatePackCopy(S.Context,
2042 SmallVector<TemplateArgument, 4> Builder;
2125 SmallVector<TemplateArgument, 4> ConvertedInstArgs;
2133 TemplateArgument InstArg = ConvertedInstArgs.data()[I];
2254 SmallVector<TemplateArgument, 4> Builder;
2295 const TemplateArgument &Arg = Builder[I];
2296 if (Arg.getKind() == TemplateArgument::Pack) {
2384 const TemplateArgument &Arg = ExplicitArgumentList->get(I);
2385 if (Arg.getKind() == TemplateArgument::Pack)
2517 SmallVector<TemplateArgument, 4> Builder;
2579 const TemplateArgument *ExplicitArgs;
2584 Builder.push_back(TemplateArgument(ExplicitArgs, NumExplicitArgs));
2586 Builder.push_back(TemplateArgument(0, 0));
4109 const TemplateArgument &TemplateArg,
4423 const TemplateArgument &TemplateArg,
4428 case TemplateArgument::Null:
4429 case TemplateArgument::Integral:
4430 case TemplateArgument::Declaration:
4433 case TemplateArgument::Type:
4438 case TemplateArgument::Template:
4439 case TemplateArgument::TemplateExpansion:
4445 case TemplateArgument::Expression:
4450 case TemplateArgument::Pack:
4451 for (TemplateArgument::pack_iterator P = TemplateArg.pack_begin(),