// { dg-do compile } // Copyright (C) 2002 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 21 Dec 2002 // PR 8572. ICE with templated conversion operators. template struct A { struct B { }; operator B* () const; B *Foo (); }; template typename A::B *A::Foo () { return 0; } template A::operator typename A::B* () const { return 0; } void Foo (A &p) { p.Foo (); static_cast ::B *> (p); }