rt_gccstream/gcc/testsuite/g++.old-deja/g++.other/conv9.C

32 lines
521 B
C

// { 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);
}