Alejandro =?utf-8?q?Álvarez_Ayllón?=,
Alejandro =?utf-8?q?Álvarez_Ayllón?=,
Alejandro =?utf-8?q?Álvarez_Ayllón?Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/[email protected]>
================
@@ -6092,12 +6092,14 @@ void ASTWriter::WriteDeclUpdatesBlocks(ASTContext
&Context,
// An updated body is emitted last, so that the reader doesn't need
// to skip over the lazy body to reach statements for other records.
- if (Kind == UPD_CXX_ADDED_FUNCTION_DEFINITION)
- HasUpdatedBody = true;
- else if (Kind == UPD_CXX_ADDED_VAR_DEFINITION)
+ if (Kind == UPD_CXX_ADDED_FUNCTION_DEFINITION) {
+ assert(isa<FunctionDecl>(D) && "expected FunctionDecl");
+ HasUpdatedBody = cast<FunctionDecl>(D)->hasBody();
----------------
ChuanqiXu9 wrote:
Sorry to skip this on the last iteration. We should use
`doesThisDeclarationHaveABody` instead of `hasBody`. Since `hasBody` may be
more expensive.
And also it is still slightly better to not set
`UPD_CXX_ADDED_FUNCTION_DEFINITION` if the function doesn't have a body. We
can check this in CompletedImplicitDefinition and
VariableDefinitionInstantiated.
https://github.com/llvm/llvm-project/pull/121550
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits