view gcc/testsuite/g++.dg/pr81308-1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line source

/* { dg-do compile } */
/* { dg-options "-w -O2 -fno-exceptions -std=c++11 -fpermissive" } */

namespace a {
template <typename b, b c> struct d { static constexpr b e = c; };
template <typename> struct f : d<bool, __is_trivially_copyable(int)> {};
}
typedef long g;
template <typename> struct h { static const bool e = a::f<int>::e; };
namespace a {
template <typename> struct ah;
template <typename> class ai;
}
class i {
public:
  operator[](long) const {}
};
template <typename, int> class am : public i {};
class an;
class k : public am<a::ai<an>, h<a::ai<a::ah<an>>>::e> {};
class l {
public:
  aq();
};
class ar extern as;
typedef k at;
class m {
  virtual bool av(int, unsigned &, at &, int &, g &, bool);
};
class ar {
public:
  typedef m *aw(const &, int &, const &, const &);
};
struct ax {
  static ay(ar::aw);
};
template <class az> struct n {
  n(ar) { ax::ay(ba); }
  static m *ba(const &bb, int &bc, const &bd, const &be) { az(bb, bc, bd, be); }
};
namespace {
class G : m {
  unsigned bi(const at &, l &);
  bool av(int, unsigned &, at &, int &, g &, bool);

public:
  G(const, int, const, const) {}
};
}
bool G::av(int, unsigned &, at &bl, int &, g &, bool) {
  l bo;
  bi(bl, bo);
}
o() { n<G> bp(as); }
namespace {
enum { bq, br };
}
unsigned G::bi(const at &bl, l &bo) {
  unsigned bs;
  for (char *j;; j += 2)
    switch (*j) {
    case bq:
      bl[bs];
    case br:
      bo.aq();
    }
}