[clang] Add Clang attribute to ensure that fields are initialized explicitly (PR #102040)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 27 11:46:20 PDT 2024


================
@@ -6457,6 +6472,18 @@ void InitializationSequence::InitializeFrom(Sema &S,
     }
   }
 
+  if (!S.getLangOpts().CPlusPlus &&
+      Kind.getKind() == InitializationKind::IK_Default) {
+    RecordDecl *Rec = DestType->getAsRecordDecl();
+    if (Rec && Rec->hasUninitializedExplicitInitFields()) {
+      VarDecl *Var = dyn_cast_or_null<VarDecl>(Entity.getDecl());
+      if (Var && !Initializer) {
----------------
erichkeane wrote:

What is the `VarDecl` here?  Again, we have access to the record-decl, so why can't we get the field name here?

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


More information about the cfe-commits mailing list