https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85834

--- Comment #6 from David Binderman <dcb314 at hotmail dot com> ---
Reduced C++ code:

typedef long unsigned a;
extern "C" void *memset(void *, int, a);
typedef struct b c;
enum d { e };
template <int, typename> class f {
public:
  template <typename g> f(g);
};
typedef f<1, long> h;
template <typename> struct j {
  enum k {};
};
class l {
public:
  typedef j<l>::k k;
  l(k);
  operator d();
};
struct b {};
class m {};
c q(h, d);
c n(unsigned char o[]) {
  int i;
  long r;
  for (i = 0; i < 4; i++)
    r = o[i];
  return q(r, l((l::k)e));
}
m p() {
  unsigned char o[4], s = 1;
  for (;;) {
    memset(o, s, 4);
    n(o);
    s = 2;
  }
}

Reply via email to