(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arc/
tdelay_slots.cpp
/* { dg-do assemble } */
/* { dg-skip-if "" { ! { clmcpu } } } */
/* { dg-options "-O2 -mcpu=em" } */

template <class> struct A;
int a;
template <> struct A<char> {
  typedef int int_type;
  static int_type eof();
};
template <> struct A<wchar_t> {
  typedef int int_type;
  static int_type eof() { return -1; }
};
class basic_streambuf {
public:
  virtual ~basic_streambuf();
};
class B {
  void tie();
  class C {
    C();
  };
};
template <typename _CharT, typename _Traits = A<_CharT>>
class D : basic_streambuf {
  typedef _Traits traits_type;
  typename traits_type::int_type _M_unget_buf;

public:
  D(void *) : _M_unget_buf(traits_type::eof()) {}
};

extern D<wchar_t> b;
B c;
void *operator new(unsigned, void *p2) { return p2; }

B::C::C() {
  new D<char>(&a);
  c.tie();
  new (&b) D<wchar_t>(&a);
}