view gcc/testsuite/g++.dg/pr81308-2.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" } */

struct A {
  int operator[](int) const {}
};
struct B {
  void m_fn1();
};
struct C {
  virtual bool m_fn2(int, unsigned &, A &, int &, unsigned long &, bool);
};
template <class MCAsmParserImpl> struct D {
  D(int) { MCAsmParserImpl(0, 0, 0, 0); }
};
int a;
namespace {
struct F : C {
  bool m_fn2(int, unsigned &, A &, int &, unsigned long &, bool);
  unsigned m_fn3(const A &, B &);
  F(int, int, int, int) {}
};
}
bool F::m_fn2(int, unsigned &, A &p3, int &, unsigned long &, bool) {
  B b;
  m_fn3(p3, b);
}
void fn1() { D<F>(0); }
unsigned F::m_fn3(const A &p1, B &p2) {
  for (int *p;; p++)
    switch (*p) {
    case 0:
      p1[a];
    case 1:
      p2.m_fn1();
    }
}