forked from OSchip/llvm-project
Combine common (de-)serialization logic for typedefs and type aliases
into operations on TypedefNameDecl. No functionality change. llvm-svn: 146866
This commit is contained in:
parent
18e33935f3
commit
1f179064b0
|
@ -134,6 +134,7 @@ namespace clang {
|
|||
void VisitUsingDirectiveDecl(UsingDirectiveDecl *D);
|
||||
void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
|
||||
void VisitTypeDecl(TypeDecl *TD);
|
||||
void VisitTypedefNameDecl(TypedefNameDecl *TD);
|
||||
void VisitTypedefDecl(TypedefDecl *TD);
|
||||
void VisitTypeAliasDecl(TypeAliasDecl *TD);
|
||||
void VisitUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D);
|
||||
|
@ -307,16 +308,18 @@ void ASTDeclReader::VisitTypeDecl(TypeDecl *TD) {
|
|||
TypeIDForTypeDecl = Reader.getGlobalTypeID(F, Record[Idx++]);
|
||||
}
|
||||
|
||||
void ASTDeclReader::VisitTypedefDecl(TypedefDecl *TD) {
|
||||
void ASTDeclReader::VisitTypedefNameDecl(TypedefNameDecl *TD) {
|
||||
VisitRedeclarable(TD);
|
||||
VisitTypeDecl(TD);
|
||||
TD->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
|
||||
TD->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
|
||||
}
|
||||
|
||||
void ASTDeclReader::VisitTypedefDecl(TypedefDecl *TD) {
|
||||
VisitTypedefNameDecl(TD);
|
||||
}
|
||||
|
||||
void ASTDeclReader::VisitTypeAliasDecl(TypeAliasDecl *TD) {
|
||||
VisitRedeclarable(TD);
|
||||
VisitTypeDecl(TD);
|
||||
TD->setTypeSourceInfo(GetTypeSourceInfo(Record, Idx));
|
||||
VisitTypedefNameDecl(TD);
|
||||
}
|
||||
|
||||
void ASTDeclReader::VisitTagDecl(TagDecl *TD) {
|
||||
|
|
|
@ -55,6 +55,7 @@ namespace clang {
|
|||
void VisitUsingDirectiveDecl(UsingDirectiveDecl *D);
|
||||
void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
|
||||
void VisitTypeDecl(TypeDecl *D);
|
||||
void VisitTypedefNameDecl(TypedefNameDecl *D);
|
||||
void VisitTypedefDecl(TypedefDecl *D);
|
||||
void VisitTypeAliasDecl(TypeAliasDecl *D);
|
||||
void VisitUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D);
|
||||
|
@ -200,11 +201,14 @@ void ASTDeclWriter::VisitTypeDecl(TypeDecl *D) {
|
|||
Writer.AddTypeRef(QualType(D->getTypeForDecl(), 0), Record);
|
||||
}
|
||||
|
||||
void ASTDeclWriter::VisitTypedefDecl(TypedefDecl *D) {
|
||||
void ASTDeclWriter::VisitTypedefNameDecl(TypedefNameDecl *D) {
|
||||
VisitRedeclarable(D);
|
||||
VisitTypeDecl(D);
|
||||
Writer.AddTypeSourceInfo(D->getTypeSourceInfo(), Record);
|
||||
Writer.AddTypeSourceInfo(D->getTypeSourceInfo(), Record);
|
||||
}
|
||||
|
||||
void ASTDeclWriter::VisitTypedefDecl(TypedefDecl *D) {
|
||||
VisitTypedefNameDecl(D);
|
||||
if (!D->hasAttrs() &&
|
||||
!D->isImplicit() &&
|
||||
!D->isUsed(false) &&
|
||||
|
@ -221,9 +225,7 @@ void ASTDeclWriter::VisitTypedefDecl(TypedefDecl *D) {
|
|||
}
|
||||
|
||||
void ASTDeclWriter::VisitTypeAliasDecl(TypeAliasDecl *D) {
|
||||
VisitRedeclarable(D);
|
||||
VisitTypeDecl(D);
|
||||
Writer.AddTypeSourceInfo(D->getTypeSourceInfo(), Record);
|
||||
VisitTypedefNameDecl(D);
|
||||
Code = serialization::DECL_TYPEALIAS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue