// PR tree-opt/18040 | |
// { dg-do compile } | |
// { dg-options "-O3" } | |
int PyObject_IsTrue(); | |
struct object_base | |
{ | |
void ptr() const; | |
void ptr1() const; | |
}; | |
struct object : public object_base | |
{ | |
typedef void (object::*bool_type)() const; | |
inline operator bool_type() const | |
{ return PyObject_IsTrue() | |
? &object_base::ptr : &object::ptr1; } | |
}; | |
void f(); | |
void g (void) | |
{ | |
for (unsigned n = 0; n < 100; ++n) | |
{ | |
object kv; | |
if (kv) | |
f(); | |
} | |
} | |