[clang] [Clang][Sema] set declaration invalid earlier to prevent crash in calculating record layout (PR #87173)

Qizhi Hu via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 1 18:18:57 PDT 2024


================
@@ -3899,6 +3899,9 @@ static QualType GetDeclSpecTypeForDeclarator(TypeProcessingState &state,
       SemaRef.Diag(OwnedTagDecl->getLocation(), DiagID)
           << SemaRef.Context.getTypeDeclType(OwnedTagDecl);
       D.setInvalidType(true);
+      OwnedTagDecl->setCompleteDefinition(false);
+      OwnedTagDecl->setInvalidDecl();
+      OwnedTagDecl->setCompleteDefinition();
----------------
jcsxky wrote:

@erichkeane Condition holds in outer `if`(line 3841) indicates `OwnedTagDecl` is a complete definition.

https://github.com/llvm/llvm-project/pull/87173


More information about the cfe-commits mailing list