public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/98405] New: missing -Wmaybe-uninitialized passing a member by reference in a ctor initializer list
@ 2020-12-20 22:55 msebor at gcc dot gnu.org
2020-12-20 22:56 ` [Bug middle-end/98405] " msebor at gcc dot gnu.org
2022-01-26 17:20 ` msebor at gcc dot gnu.org
0 siblings, 2 replies; 3+ messages in thread
From: msebor at gcc dot gnu.org @ 2020-12-20 22:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98405
Bug ID: 98405
Summary: missing -Wmaybe-uninitialized passing a member by
reference in a ctor initializer list
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: msebor at gcc dot gnu.org
Target Milestone: ---
As discussed in
https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559258.html, GCC 11
issues -Wmaybe-uninitialized when passing uninitialized variables by reference
to functions that take a const pointer or const reference. However, it fails
to diagnose the same problem involving members in a C++ constructor. For
example, in the test case below, only the first instance triggers the warning.
The other two don't.
$ cat a.C && gcc -O2 -S -Wall a.C
int f (const int*);
struct X {
int a, b;
};
void g ()
{
X x;
x.a = f (&x.b); // warning (good)
}
struct Y {
Y ();
Y (int);
int a, b;
};
Y::Y (): a (f (&b)) { } // missing warning
Y::Y (int) { f (&b); } // missing warning
a.C: In function ‘void g()’:
a.C:10:11: warning: ‘x’ may be used uninitialized [-Wmaybe-uninitialized]
10 | x.a = f (&x.b); // warning (good)
| ~~^~~~~~
a.C:1:5: note: by argument 1 of type ‘const int*’ to ‘int f(const int*)’
declared here
1 | int f (const int*);
| ^
a.C:9:5: note: ‘x’ declared here
9 | X x;
| ^
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-01-26 17:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-20 22:55 [Bug middle-end/98405] New: missing -Wmaybe-uninitialized passing a member by reference in a ctor initializer list msebor at gcc dot gnu.org
2020-12-20 22:56 ` [Bug middle-end/98405] " msebor at gcc dot gnu.org
2022-01-26 17:20 ` msebor at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).