http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58317
--- Comment #3 from Oleg Smolsky <oleg at smolsky dot net> --- Also, clang gives a warning: struct A { int f() const { return 1000; } A(int arg) : member(arg) { } int member; }; namespace { int func(const A &a) { return a.f(); } } int main() { A a(func(a)); // warning: variable 'a' is uninitialized when used // within its own initialization // [-Wuninitialized] return a.member; }