[clang] [clang] Fix a crash issue that caused by handling of fields with initializers in nested anonymous unions (PR #113049)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 4 12:28:30 PST 2024


================
@@ -750,6 +750,19 @@ void InitListChecker::FillInEmptyInitForField(unsigned Init, FieldDecl *Field,
     if (Field->hasInClassInitializer()) {
       if (VerifyOnly)
         return;
+
+      // We do not want to aggressively set the hadError flag and cutoff
+      // parsing. Try to recover when in-class-initializer had errors.
+      if (Field->getInClassInitializer() &&
----------------
efriedma-quic wrote:

I'm not sure I understand the purpose of this code.  Why are we not handling this in BuildCXXDefaultInitExpr()?

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


More information about the cfe-commits mailing list