| // { dg-do assemble } | |
| struct | |
| Foo | |
| { | |
| public: | |
| typedef void* (*copier_fn)(void const*); | |
| void foo() const; | |
| void bar(char const*, void const*) const; | |
| private: | |
| struct | |
| Bar | |
| { | |
| char const* key; | |
| void const* item; | |
| }; | |
| }; | |
| void | |
| Foo::foo() const | |
| { | |
| Bar* cp = 0; | |
| copier_fn copyfn = 0; | |
| bar(cp->key, cp->item); | |
| bar(cp->key, (copyfn) ? (*copyfn)(cp) : 0); | |
| bar(cp->key, (copyfn) ? (*copyfn)(0) : 0); | |
| bar(cp->key, (copyfn) ? (*copyfn)(0) : cp->item); | |
| bar(cp->key, (copyfn) ? (*copyfn)(cp) : cp->item); | |
| } |