1 // PR tree-opt/18040 2 // { dg-do compile } 3 // { dg-options "-O3" } 4 5 int PyObject_IsTrue(); 6 struct object_base 7 { 8 void ptr() const; 9 void ptr1() const; 10 }; 11 struct object : public object_base 12 { 13 typedef void (object::*bool_type)() const; bool_typeobject14 inline operator bool_type() const 15 { return PyObject_IsTrue() 16 ? &object_base::ptr : &object::ptr1; } 17 }; 18 void f(); g(void)19void g (void) 20 { 21 for (unsigned n = 0; n < 100; ++n) 22 { 23 object kv; 24 if (kv) 25 f(); 26 } 27 } 28 29