view gcc/testsuite/g++.old-deja/g++.other/conv9.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line source

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