aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2024-02-20 15:55:55 -0500
committerMarek Polacek <polacek@redhat.com>2024-02-29 12:39:21 -0500
commitb83f3cd3ff765fb82344b848b8a128763b7a4233 (patch)
tree6d8c54ef52070c02a52dde1a9c62bd6f898e8a93 /gcc/function.h
parentbc0e18a960f9dff3e740f4d0cb5b25b3f68d920a (diff)
downloadgcc-b83f3cd3ff765fb82344b848b8a128763b7a4233.zip
gcc-b83f3cd3ff765fb82344b848b8a128763b7a4233.tar.gz
gcc-b83f3cd3ff765fb82344b848b8a128763b7a4233.tar.bz2
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.
Diffstat (limited to 'gcc/function.h')
0 files changed, 0 insertions, 0 deletions