// PR c++/56728 // { dg-require-effective-target c++11 } class B { public: static B instance; class Inner { public: class Wuzi { unsigned int m; } m_Class[3]; unsigned m_Int[4]; }; constexpr static Inner & getInner() { /* I am surprised this is considered a constexpr */ return *((Inner *)4); } // { dg-error "reinterpret_cast" } }; B B::instance; class A { public: constexpr A(B &bridge, B::Inner &bridge2, unsigned char index) : m_Bridge(bridge), m_Wuz(bridge2.m_Class[index]) {} B &m_Bridge; B::Inner::Wuzi &m_Wuz; }; A works{B::instance, B::getInner(), 3}; A crashnkill[1]{{B::instance, B::getInner(), 3}};