diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2012-03-07 01:09:33 +0000 | 
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2012-03-07 01:09:33 +0000 | 
| commit | 205a429891aeaceb6ad36b35f0ccc881031d0988 (patch) | |
| tree | 2b5ec8ec3fc63c65e7aad981f472a934773e4f89 /clang/lib | |
| parent | eadd8ee49c9dc520986ce7094b65ff67765d65ed (diff) | |
| download | bcm5719-llvm-205a429891aeaceb6ad36b35f0ccc881031d0988.tar.gz bcm5719-llvm-205a429891aeaceb6ad36b35f0ccc881031d0988.zip  | |
Make sure we consistently canonicalize types when canonicalizing TemplateTemplateParmDecls.  PR12179.
llvm-svn: 152189
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index e122df9d235..0d6f6e612c9 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -74,12 +74,14 @@ ASTContext::CanonicalTemplateTemplateParm::Profile(llvm::FoldingSetNodeID &ID,      if (NonTypeTemplateParmDecl *NTTP = dyn_cast<NonTypeTemplateParmDecl>(*P)) {        ID.AddInteger(1);        ID.AddBoolean(NTTP->isParameterPack()); -      ID.AddPointer(NTTP->getType().getAsOpaquePtr()); +      ID.AddPointer(NTTP->getType().getCanonicalType().getAsOpaquePtr());        if (NTTP->isExpandedParameterPack()) {          ID.AddBoolean(true);          ID.AddInteger(NTTP->getNumExpansionTypes()); -        for (unsigned I = 0, N = NTTP->getNumExpansionTypes(); I != N; ++I) -          ID.AddPointer(NTTP->getExpansionType(I).getAsOpaquePtr()); +        for (unsigned I = 0, N = NTTP->getNumExpansionTypes(); I != N; ++I) { +          QualType T = NTTP->getExpansionType(I); +          ID.AddPointer(T.getCanonicalType().getAsOpaquePtr()); +        }        } else           ID.AddBoolean(false);        continue;  | 

