// PR 31074 // Bug: The reference cast wasn't finding the desired static_cast followed by // const_cast interpretation. struct Shape { Shape() {} virtual ~Shape() {} }; struct Loop { Loop() {} virtual ~Loop() {} virtual void func() {} }; struct Rect : public Shape, public Loop { Rect() {} virtual ~Rect() {} }; int main () { const Rect* rect = new Rect(); Loop &l = ((Loop&)(*rect)); return (&l != (const Loop *)rect); }