From a648acc3b4ce528464ca23ee233de8f320542195 Mon Sep 17 00:00:00 2001 From: Marek Polacek Date: Mon, 8 Nov 2021 12:55:52 -0500 Subject: c++: Skip unnamed bit-fields more As Jason noticed in , we shouldn't require an initializer for an unnamed bit-field, because, as [class.bit] says, they cannot be initialized. gcc/cp/ChangeLog: * class.c (default_init_uninitialized_part): Use next_initializable_field. * method.c (walk_field_subobs): Skip unnamed bit-fields. gcc/testsuite/ChangeLog: * g++.dg/init/bitfield6.C: New test. --- gcc/cp/method.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/cp/method.c') diff --git a/gcc/cp/method.c b/gcc/cp/method.c index 1023aef..935946f 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -2295,7 +2295,9 @@ walk_field_subobs (tree fields, special_function_kind sfk, tree fnname, { tree mem_type, argtype, rval; - if (TREE_CODE (field) != FIELD_DECL || DECL_ARTIFICIAL (field)) + if (TREE_CODE (field) != FIELD_DECL + || DECL_ARTIFICIAL (field) + || DECL_UNNAMED_BIT_FIELD (field)) continue; /* Variant members only affect deletedness. In particular, they don't -- cgit v1.1