diff options
author | Chuanqi Xu <yedeng.yd@linux.alibaba.com> | 2024-04-25 11:43:13 +0800 |
---|---|---|
committer | Chuanqi Xu <yedeng.yd@linux.alibaba.com> | 2024-04-25 14:59:09 +0800 |
commit | d86cc73bbfd9a22d9a0d498d72c9b2ee235128e9 (patch) | |
tree | 278887d9ea7f3d0608a0151d2898daaf46dee985 /clang/lib/Frontend/ASTUnit.cpp | |
parent | 72b58146b14308c0c745111f082fc6354cefda22 (diff) | |
download | llvm-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.cpp | 8 |
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(); |