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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Marek Polacek <mpola...@gcc.gnu.org>:

https://gcc.gnu.org/g:b83f3cd3ff765fb82344b848b8a128763b7a4233

commit r14-9240-gb83f3cd3ff765fb82344b848b8a128763b7a4233
Author: Marek Polacek <pola...@redhat.com>
Date:   Tue Feb 20 15:55:55 2024 -0500

    c++: -Wuninitialized when binding a ref to uninit DM [PR113987]

    This PR asks that our -Wuninitialized for mem-initializers does
    not warn when binding a reference to an uninitialized data member.
    We already check !INDIRECT_TYPE_P in find_uninit_fields_r, but
    that won't catch binding a parameter of a reference type to an
    uninitialized field, as in:

      struct S { S (int&); };
      struct T {
          T() : s(i) {}
          S s;
          int i;
      };

    This patch adds a new function to handle this case.

            PR c++/113987

    gcc/cp/ChangeLog:

            * call.cc (conv_binds_to_reference_parm_p): New.
            * cp-tree.h (conv_binds_to_reference_parm_p): Declare.
            * init.cc (find_uninit_fields_r): Call it.

    gcc/testsuite/ChangeLog:

            * g++.dg/warn/Wuninitialized-15.C: Turn dg-warning into dg-bogus.
            * g++.dg/warn/Wuninitialized-34.C: New test.

Reply via email to