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:59:09 +0800
commitd86cc73bbfd9a22d9a0d498d72c9b2ee235128e9 (patch)
tree278887d9ea7f3d0608a0151d2898daaf46dee985 /clang/lib/Frontend/ASTUnit.cpp
parent72b58146b14308c0c745111f082fc6354cefda22 (diff)
downloadllvm-d86cc73bbfd9a22d9a0d498d72c9b2ee235128e9.zip
llvm-d86cc73bbfd9a22d9a0d498d72c9b2ee235128e9.tar.gz
llvm-d86cc73bbfd9a22d9a0d498d72c9b2ee235128e9.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();