aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/ASTUnit.cpp
diff options
context:
space:
mode:
authorChuanqi Xu <yedeng.yd@linux.alibaba.com>2024-04-25 11:43:13 +0800
committerChuanqi Xu <yedeng.yd@linux.alibaba.com>2024-04-25 14:14:05 +0800
commit42070a5c092ed420bf92ebf38229c594885e94c7 (patch)
tree843afa1cc0c179d42d2dc0ed8a2dada5964a6734 /clang/lib/Frontend/ASTUnit.cpp
parentc2a98fdeb3aede1a8db492a6ea30f4fa85b60edc (diff)
downloadllvm-42070a5c092ed420bf92ebf38229c594885e94c7.zip
llvm-42070a5c092ed420bf92ebf38229c594885e94c7.tar.gz
llvm-42070a5c092ed420bf92ebf38229c594885e94c7.tar.bz2
[NFC] [Serialization] Avoid using DeclID directly as much as possible
This patch tries to remove all the direct use of DeclID except the real low level reading and writing. All the use of DeclID is converted to the use of LocalDeclID or GlobalDeclID. This is helpful to increase the readability and type safety.
Diffstat (limited to 'clang/lib/Frontend/ASTUnit.cpp')
-rw-r--r--clang/lib/Frontend/ASTUnit.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Frontend/ASTUnit.cpp b/clang/lib/Frontend/ASTUnit.cpp
index 361331d..2f75313e 100644
--- a/clang/lib/Frontend/ASTUnit.cpp
+++ b/clang/lib/Frontend/ASTUnit.cpp
@@ -1067,7 +1067,7 @@ public:
std::vector<Decl *> takeTopLevelDecls() { return std::move(TopLevelDecls); }
- std::vector<DeclID> takeTopLevelDeclIDs() {
+ std::vector<LocalDeclID> takeTopLevelDeclIDs() {
return std::move(TopLevelDeclIDs);
}
@@ -1101,7 +1101,7 @@ public:
private:
unsigned Hash = 0;
std::vector<Decl *> TopLevelDecls;
- std::vector<DeclID> TopLevelDeclIDs;
+ std::vector<LocalDeclID> TopLevelDeclIDs;
llvm::SmallVector<ASTUnit::StandaloneDiagnostic, 4> PreambleDiags;
};
@@ -1471,7 +1471,9 @@ void ASTUnit::RealizeTopLevelDeclsFromPreamble() {
for (const auto TopLevelDecl : TopLevelDeclsInPreamble) {
// Resolve the declaration ID to an actual declaration, possibly
// deserializing the declaration in the process.
- if (Decl *D = Source.GetExternalDecl(TopLevelDecl))
+ //
+ // FIMXE: We shouldn't convert a LocalDeclID to GlobalDeclID directly.
+ if (Decl *D = Source.GetExternalDecl(GlobalDeclID(TopLevelDecl.get())))
Resolved.push_back(D);
}
TopLevelDeclsInPreamble.clear();