blob: 0fcf980be6bdaaa72632eb481b259b6c4762b5c3 [file] [log] [blame]
// { 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);
}