llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Rajveer Singh Bharadwaj (Rajveer100) <details> <summary>Changes</summary> Resolves #<!-- -->95854 -- As per https://eel.is/c++draft/dcl.init#general-8.3 --- Full diff: https://github.com/llvm/llvm-project/pull/96301.diff 2 Files Affected: - (modified) clang/include/clang/AST/DeclCXX.h (+2-1) - (added) clang/test/Sema/debug-95854.cpp (+11) ``````````diff diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h index fb52ac804849d..1d1083a5d6205 100644 --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/include/clang/AST/DeclCXX.h @@ -1392,7 +1392,8 @@ class CXXRecordDecl : public RecordDecl { bool allowConstDefaultInit() const { return !data().HasUninitializedFields || !(data().HasDefaultedDefaultConstructor || - needsImplicitDefaultConstructor()); + needsImplicitDefaultConstructor()) || + hasInClassInitializer(); } /// Determine whether this class has a destructor which has no diff --git a/clang/test/Sema/debug-95854.cpp b/clang/test/Sema/debug-95854.cpp new file mode 100644 index 0000000000000..1fb976558650d --- /dev/null +++ b/clang/test/Sema/debug-95854.cpp @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify %s +// +// expected-no-diagnostics + +struct A { + union { + int n = 0; + int m; + }; +}; +const A a; `````````` </details> https://github.com/llvm/llvm-project/pull/96301 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits