summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-05-11 23:53:27 +0000
committerDouglas Gregor <dgregor@apple.com>2009-05-11 23:53:27 +0000
commitd002c7bc5889d23f8039b15aef3c38bc2db885e3 (patch)
treeac98e6e6050218aec7d1cf22075e734a99270b7d /clang/lib/Sema/Sema.h
parent5fb7847fbff1c8808e589426ebacabf11339f07c (diff)
downloadbcm5719-llvm-d002c7bc5889d23f8039b15aef3c38bc2db885e3.tar.gz
bcm5719-llvm-d002c7bc5889d23f8039b15aef3c38bc2db885e3.zip
Encapsulate template arguments lists in a new class,
TemplateArgumentList. This avoids the need to pass around pointer/length pairs of template arguments lists, and will eventually make it easier to introduce member templates and variadic templates. llvm-svn: 71517
Diffstat (limited to 'clang/lib/Sema/Sema.h')
-rw-r--r--clang/lib/Sema/Sema.h24
1 files changed, 9 insertions, 15 deletions
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h
index 21aca40c7d2..83565095509 100644
--- a/clang/lib/Sema/Sema.h
+++ b/clang/lib/Sema/Sema.h
@@ -65,6 +65,7 @@ namespace clang {
class TypedefDecl;
class TemplateDecl;
class TemplateArgument;
+ class TemplateArgumentList;
class TemplateParameterList;
class TemplateTemplateParmDecl;
class ClassTemplateDecl;
@@ -1974,7 +1975,7 @@ public:
uintptr_t Entity;
// \brief If this the instantiation of a default template
- // argument, the list of tempalte arguments.
+ // argument, the list of template arguments.
const TemplateArgument *TemplateArgs;
/// \brief The number of template arguments in TemplateArgs.
@@ -2074,29 +2075,24 @@ public:
void PrintInstantiationStack();
- QualType InstantiateType(QualType T, const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs,
+ QualType InstantiateType(QualType T, const TemplateArgumentList &TemplateArgs,
SourceLocation Loc, DeclarationName Entity);
OwningExprResult InstantiateExpr(Expr *E,
- const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs);
+ const TemplateArgumentList &TemplateArgs);
Decl *InstantiateDecl(Decl *D, DeclContext *Owner,
- const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs);
+ const TemplateArgumentList &TemplateArgs);
bool
InstantiateBaseSpecifiers(CXXRecordDecl *Instantiation,
CXXRecordDecl *Pattern,
- const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs);
+ const TemplateArgumentList &TemplateArgs);
bool
InstantiateClass(SourceLocation PointOfInstantiation,
CXXRecordDecl *Instantiation, CXXRecordDecl *Pattern,
- const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs);
+ const TemplateArgumentList &TemplateArgs);
bool
InstantiateClassTemplateSpecialization(
@@ -2106,13 +2102,11 @@ public:
NestedNameSpecifier *
InstantiateNestedNameSpecifier(NestedNameSpecifier *NNS,
SourceRange Range,
- const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs);
+ const TemplateArgumentList &TemplateArgs);
TemplateName
InstantiateTemplateName(TemplateName Name, SourceLocation Loc,
- const TemplateArgument *TemplateArgs,
- unsigned NumTemplateArgs);
+ const TemplateArgumentList &TemplateArgs);
// Simple function for cloning expressions.
template<typename T>
OpenPOWER on IntegriCloud