https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127470
Vadim Zeitlin <vz-gcc at zeitlins dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vz-gcc at zeitlins dot org
--- Comment #4 from Vadim Zeitlin <vz-gcc at zeitlins dot org> ---
Just for the record, this bug also affects using `this` pointer, e.g.:
% cat gcc16-warn-uninit.cpp
struct Base { Base(int*); int* Get(int* p, long) const; };
struct D : Base { int m; D(int* p, long s) : Base(Get(p, s)), m(0) {} };
D* f(int* p) { return new D(p, 0); }
% g++ -c -Wmaybe-uninitialized gcc16-warn-uninit.cpp
gcc16-warn-uninit.cpp: In constructor ‘D::D(int*, long int)’:
gcc16-warn-uninit.cpp:2:66: warning: ‘<unknown>’ may be used uninitialized
[-Wmaybe-uninitialized]
2 | struct D : Base { int m; D(int* p, long s) : Base(Get(p, s)), m(0) {}
};
| ^
gcc16-warn-uninit.cpp:1:32: note: by argument 1 of type ‘const Base*’ to ‘int*
Base::Get(int*, long int) const’ declared here
1 | struct Base { Base(int*); int* Get(int* p, long) const; };
| ^~~