This patch changes
warning: missing initializer for member 'D::<anonymous>' [-Wmissing-field-initializers]
to
warning: missing initializer for member 'D::B' [-Wmissing-field-initializers]
PR c++/110745
gcc/cp/ChangeLog:
* error.cc (dump_simple_decl): Print base class name.
gcc/testsuite/ChangeLog:
* g++.dg/diagnostic/base.C: New test.
}
else if (DECL_DECOMPOSITION_P (t))
pp_string (pp, M_("<structured bindings>"));
+ else if (TREE_CODE (t) == FIELD_DECL && DECL_FIELD_IS_BASE (t))
+ dump_type (pp, TREE_TYPE (t), flags);
else
pp_string (pp, M_("<anonymous>"));
--- /dev/null
+// PR c++/110745
+// { dg-do compile { target c++17 } }
+// { dg-options "-Wmissing-field-initializers" }
+
+struct B { int i; };
+struct D : B {
+ int x;
+ int y;
+};
+
+int
+main ()
+{
+ D d = {.x=1, .y=2}; // { dg-warning "missing initializer for member .D::B." }
+ (void)d;
+}