diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-03-07 15:13:34 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-03-07 15:13:34 +0000 |
commit | 11ddf1361df445099fa68cff9aaabe3a9960d8f4 (patch) | |
tree | bc55f64267de14858f6f68165e24218dd3001bdc /clang/lib/Sema/TreeTransform.h | |
parent | 0cfa737f27dda7418aa4b013baecaa3eb6f067e7 (diff) | |
download | bcm5719-llvm-11ddf1361df445099fa68cff9aaabe3a9960d8f4.tar.gz bcm5719-llvm-11ddf1361df445099fa68cff9aaabe3a9960d8f4.zip |
When rebuilding a dependent template specialization type to another
dependent template specialization type, make sure to set the keyword
location. Fixes some valgrind issues introduced in r127150.
llvm-svn: 127159
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index cab63d060c9..7f055c08cc0 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -4516,7 +4516,7 @@ TransformDependentTemplateSpecializationType(TypeLocBuilder &TLB, = TLB.push<TemplateSpecializationTypeLoc>(NamedT); NamedTL.setLAngleLoc(TL.getLAngleLoc()); NamedTL.setRAngleLoc(TL.getRAngleLoc()); - for (unsigned I = 0, E = NamedTL.getNumArgs(); I != E; ++I) + for (unsigned I = 0, E = NewTemplateArgs.size(); I != E; ++I) NamedTL.setArgLocInfo(I, NewTemplateArgs[I].getLocInfo()); // Copy information relevant to the elaborated type. @@ -4526,18 +4526,19 @@ TransformDependentTemplateSpecializationType(TypeLocBuilder &TLB, } else if (isa<DependentTemplateSpecializationType>(Result)) { DependentTemplateSpecializationTypeLoc SpecTL = TLB.push<DependentTemplateSpecializationTypeLoc>(Result); + SpecTL.setKeywordLoc(TL.getKeywordLoc()); SpecTL.setQualifierLoc(QualifierLoc); SpecTL.setLAngleLoc(TL.getLAngleLoc()); SpecTL.setRAngleLoc(TL.getRAngleLoc()); SpecTL.setNameLoc(TL.getNameLoc()); - for (unsigned I = 0, E = SpecTL.getNumArgs(); I != E; ++I) + for (unsigned I = 0, E = NewTemplateArgs.size(); I != E; ++I) SpecTL.setArgLocInfo(I, NewTemplateArgs[I].getLocInfo()); } else { TemplateSpecializationTypeLoc SpecTL = TLB.push<TemplateSpecializationTypeLoc>(Result); SpecTL.setLAngleLoc(TL.getLAngleLoc()); SpecTL.setRAngleLoc(TL.getRAngleLoc()); - for (unsigned I = 0, E = SpecTL.getNumArgs(); I != E; ++I) + for (unsigned I = 0, E = NewTemplateArgs.size(); I != E; ++I) SpecTL.setArgLocInfo(I, NewTemplateArgs[I].getLocInfo()); } return Result; |