https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79360

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |ppalka at gcc dot 
gnu.org

--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #1)
> Confirmed, started with r234443.

Oops, I didn't know that TYPE_FIELDS could contain things other than
FIELD_DECLs.   Testing this:

diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 014de5c..1e0354d 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -1510,7 +1510,8 @@ process_init_constructor_union (tree type, tree init,
     {
       for (tree field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
        {
-         if (DECL_INITIAL (field))
+         if (TREE_CODE (field) == FIELD_DECL
+             && DECL_INITIAL (field) != NULL_TREE)
            {
              CONSTRUCTOR_APPEND_ELT (CONSTRUCTOR_ELTS (init),
                                      field,

Reply via email to