[clang] [RFC][clang] Handle friend function that was a definition but became only a declaration during AST deserialization (PR #132214)
Chuanqi Xu via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 28 02:47:47 PDT 2025
================
@@ -1390,7 +1390,19 @@ class ASTReader
/// predefines buffer may contain additional definitions.
std::string SuggestedPredefines;
- llvm::DenseMap<const Decl *, bool> DefinitionSource;
+ struct DefinitionSourceFlags {
+ ExtKind HasExternalDefinitions : 2;
+
+ /// Indicates if given function declaration was a definition but its body
+ /// was removed due to declaration merging.
+ bool ThisDeclarationWasADefinition : 1;
+
+ DefinitionSourceFlags()
+ : HasExternalDefinitions(EK_ReplyHazy),
+ ThisDeclarationWasADefinition(false) {}
+ };
+
+ llvm::DenseMap<const Decl *, DefinitionSourceFlags> DefinitionSource;
----------------
ChuanqiXu9 wrote:
It might be better to add another new map for it. e.g., Decl is not a function.
https://github.com/llvm/llvm-project/pull/132214
More information about the cfe-commits
mailing list