[clang] [Sema] Instantiate destructors for initialized anonymous union fields (PR #128866)

Maurice Heumann via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 4 23:23:46 PST 2025


================
@@ -5450,10 +5450,20 @@ bool Sema::SetCtorInitializers(CXXConstructorDecl *Constructor, bool AnyErrors,
            NumInitializers * sizeof(CXXCtorInitializer*));
     Constructor->setCtorInitializers(baseOrMemberInitializers);
 
+    SourceLocation Location = Constructor->getLocation();
+
     // Constructors implicitly reference the base and member
     // destructors.
-    MarkBaseAndMemberDestructorsReferenced(Constructor->getLocation(),
-                                           Constructor->getParent());
+
+    for (CXXCtorInitializer *Initializer : Info.AllToInit) {
+      FieldDecl *Field = Initializer->getAnyMember();
+      if (!Field)
+        continue;
+
+      MarkFieldDestructorReferenced(Location, Field);
----------------
momo5502 wrote:

done

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


More information about the cfe-commits mailing list