================ @@ -2363,8 +2356,11 @@ void InitListChecker::CheckStructUnionTypes( } // Emit warnings for missing struct field initializers. - if (!VerifyOnly && InitializedSomething && CheckForMissingFields && - !RD->isUnion()) { + // This check is disabled for designated initializers in C. + // This matches gcc behaviour. + if (!VerifyOnly && InitializedSomething && !RD->isUnion() && + !IList->isIdiomaticZeroInitializer(SemaRef.getLangOpts()) && + !(HasDesignatedInit && !SemaRef.getLangOpts().CPlusPlus)) { ---------------- vvd170501 wrote:
> I am asking for the list of '!'s to be shorter/grouped into a couple of > 'bools' with descriptive names Like this? Other checks seem unrelated to each other. ```diff + bool IsCDesignatedInitializer = HasDesignatedInit && !SemaRef.getLangOpts().CPlusPlus; if (!VerifyOnly && InitializedSomething && !RD->isUnion() && !IList->isIdiomaticZeroInitializer(SemaRef.getLangOpts()) && - !(HasDesignatedInit && !SemaRef.getLangOpts().CPlusPlus)) { + !IsCDesignatedInitializer) { ``` https://github.com/llvm/llvm-project/pull/81364 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits