Compiling with: g++ uninit_reference.cpp -o uninit_reference.o -std=gnu++0x -c class Outer { public: Outer() : i(*this) { } class Inner { public: Inner(Outer& o) : o(o) { } private: Outer& o; }; private: Inner i; }; class A { Outer o; }; int main() { A *a = new A; return 0; } uninit_reference.cpp: In function ‘int main()’: uninit_reference.cpp:31:14: error: uninitialized reference member in ‘class A’ using ‘new’ uninit_reference.cpp:18:12: note: ‘Outer::Inner::o’ should be initialized Configured with: ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc-svn/configure --prefix=/home/jarryd/gcc-latest-install --enable-languages=c,c++ --no-create --no-recursion Thread model: posix gcc version 4.6.0 20100425 (experimental) (GCC) -- Summary: invalid uninitialized reference in class Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jarrydb at cse dot unsw dot edu dot au GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43890