https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91070
Bug ID: 91070
Summary: Spurious notes about uninitialized members in C++17
Product: gcc
Version: 8.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: bugs at qult dot net
Target Milestone: ---
I what appears to be the minimal example below,
struct foo { int a; };
int main()
{
[](auto) {
if (int x = []{ return 0; }()) {
foo a;
(void) a;
}
}(0);
return 0;
}
GCC (-std=gnu++17) spits out the following:
<source>: In instantiation of ‘main()::<lambda(auto:1)> [with auto:1 = int]’:
<source>:9:6: required from here
<source>:1:8: note: ‘struct foo’ has no user-provided default constructor
struct foo { int a; };
^~~
<source>:1:18: note: and the implicitly-defined constructor does not initialize
‘int foo::a’
struct foo { int a; };
^
This looks like orphaned notes as in bug #90243.