summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-03-07 15:13:34 +0000
committerDouglas Gregor <dgregor@apple.com>2011-03-07 15:13:34 +0000
commit944cdae86ecb2ab5deda96804099bd28f6a6cd39 (patch)
treea49c7560fa38794a4b7a1bbd32cb5e33a15cca13
parentc2f3e7f42c8bf9e8d4393a6e8c4762dafc4f28dd (diff)
downloadclang-944cdae86ecb2ab5deda96804099bd28f6a6cd39.tar.gz
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127159 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Sema/TreeTransform.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h
index cab63d060c..7f055c08cc 100644
--- a/lib/Sema/TreeTransform.h
+++ b/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;