// { dg-do assemble } struct A { operator bool () const; operator const void * () const; }; struct B { A a; int foo1 (); int foo2 (); }; int B::foo1 () { return a ? 0 : 1; // ambiguous default type conversion for `operator !=' } int B::foo2 () { if (a) return 0; else return 1; }