diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2010-05-14 16:34:09 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2010-05-14 16:34:09 +0000 |
| commit | 4707cef758e87d37b7205f666005954729a258ef (patch) | |
| tree | 85c97cb6c967fcbfc9145d3f5064f0bc80093a35 /clang/lib/Sema/TreeTransform.h | |
| parent | 8d1bc79327bd95bb6a7a415636c77e805afa5f43 (diff) | |
| download | bcm5719-llvm-4707cef758e87d37b7205f666005954729a258ef.tar.gz bcm5719-llvm-4707cef758e87d37b7205f666005954729a258ef.zip | |
Revert r103770, "Added basic source locations to Elaborated and DependentName
types.", it is breaking Clang bootstrap.
llvm-svn: 103775
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 45 |
1 files changed, 9 insertions, 36 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 4929bf7ba3b..35152617336 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -3247,22 +3247,22 @@ QualType TreeTransform<Derived>::TransformElaboratedType(TypeLocBuilder &TLB, ElaboratedTypeLoc TL, QualType ObjectType) { - QualType Named = getDerived().TransformType(TLB, TL.getNamedTypeLoc()); - if (Named.isNull()) - return QualType(); - ElaboratedType *T = TL.getTypePtr(); NestedNameSpecifier *NNS = 0; // NOTE: the qualifier in an ElaboratedType is optional. if (T->getQualifier() != 0) { NNS = getDerived().TransformNestedNameSpecifier(T->getQualifier(), - /* FIXME */ SourceRange(), + SourceRange(), ObjectType); if (!NNS) return QualType(); } + QualType Named = getDerived().TransformType(T->getNamedType()); + if (Named.isNull()) + return QualType(); + QualType Result = TL.getType(); if (getDerived().AlwaysRebuild() || NNS != T->getQualifier() || @@ -3273,7 +3273,7 @@ TreeTransform<Derived>::TransformElaboratedType(TypeLocBuilder &TLB, } ElaboratedTypeLoc NewTL = TLB.push<ElaboratedTypeLoc>(Result); - NewTL.setKeywordLoc(TL.getKeywordLoc()); + NewTL.setNameLoc(TL.getNameLoc()); return Result; } @@ -3315,36 +3315,9 @@ QualType TreeTransform<Derived>::TransformDependentNameType(TypeLocBuilder &TLB, if (Result.isNull()) return QualType(); - if (const ElaboratedType* ElabT = Result->getAs<ElaboratedType>()) { - QualType NamedT = ElabT->getNamedType(); - if (isa<TypedefType>(NamedT)) { - TypedefTypeLoc NamedTLoc = TLB.push<TypedefTypeLoc>(NamedT); - NamedTLoc.setNameLoc(TL.getNameLoc()); - } - else if (isa<RecordType>(NamedT)) { - RecordTypeLoc NamedTLoc = TLB.push<RecordTypeLoc>(NamedT); - NamedTLoc.setNameLoc(TL.getNameLoc()); - } - else if (isa<EnumType>(NamedT)) { - EnumTypeLoc NamedTLoc = TLB.push<EnumTypeLoc>(NamedT); - NamedTLoc.setNameLoc(TL.getNameLoc()); - } - else if (isa<TemplateSpecializationType>(NamedT)) { - TemplateSpecializationTypeLoc NamedTLoc - = TLB.push<TemplateSpecializationTypeLoc>(NamedT); - // FIXME: fill locations - NamedTLoc.initializeLocal(SourceLocation()); - } - else - llvm_unreachable("Unexpected type"); - ElaboratedTypeLoc NewTL = TLB.push<ElaboratedTypeLoc>(Result); - NewTL.setKeywordLoc(TL.getKeywordLoc()); - } - else { - DependentNameTypeLoc NewTL = TLB.push<DependentNameTypeLoc>(Result); - NewTL.setKeywordLoc(TL.getKeywordLoc()); - NewTL.setNameLoc(TL.getNameLoc()); - } + DependentNameTypeLoc NewTL = TLB.push<DependentNameTypeLoc>(Result); + NewTL.setNameLoc(TL.getNameLoc()); + return Result; } |

