]> granicus.if.org Git - clang/commitdiff
Fix reading of DependentNameType.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 2 Jul 2010 11:55:24 +0000 (11:55 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 2 Jul 2010 11:55:24 +0000 (11:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107474 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/PCHReader.cpp
lib/Frontend/PCHWriter.cpp

index 5941ec0a25a68c35e6e446885882c05956600243..811db509aff112def325de6430e906c3a4952c97 100644 (file)
@@ -2217,7 +2217,8 @@ QualType PCHReader::ReadTypeRecord(uint64_t Offset) {
     ElaboratedTypeKeyword Keyword = (ElaboratedTypeKeyword)Record[Idx++];
     NestedNameSpecifier *NNS = ReadNestedNameSpecifier(Record, Idx);
     const IdentifierInfo *Name = this->GetIdentifierInfo(Record, Idx);
-    return Context->getDependentNameType(Keyword, NNS, Name, QualType());
+    QualType Canon = GetType(Record[Idx++]);
+    return Context->getDependentNameType(Keyword, NNS, Name, Canon);
   }
   
   case pch::TYPE_DEPENDENT_TEMPLATE_SPECIALIZATION: {
index f91f76c1b44aa199cbb0898a99c0f304680dd34a..99d228b6c0495ec194de1b0e10ec027b5b0093b9 100644 (file)
@@ -260,6 +260,9 @@ PCHTypeWriter::VisitDependentNameType(const DependentNameType *T) {
   Record.push_back(T->getKeyword());
   Writer.AddNestedNameSpecifier(T->getQualifier(), Record);
   Writer.AddIdentifierRef(T->getIdentifier(), Record);
+  Writer.AddTypeRef(T->isCanonicalUnqualified() ? QualType()
+                                                : T->getCanonicalTypeInternal(),
+                    Record);
   Code = pch::TYPE_DEPENDENT_NAME;
 }