diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-05-11 23:53:27 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-05-11 23:53:27 +0000 | 
| commit | d002c7bc5889d23f8039b15aef3c38bc2db885e3 (patch) | |
| tree | ac98e6e6050218aec7d1cf22075e734a99270b7d /clang/lib/Sema/Sema.h | |
| parent | 5fb7847fbff1c8808e589426ebacabf11339f07c (diff) | |
| download | bcm5719-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.h | 24 | 
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>  | 

