// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s

struct basic_ios{~basic_ios(); };

template<typename _CharT> struct basic_istream : virtual public basic_ios {
  virtual ~basic_istream(){}
};

template<typename _CharT> struct basic_iostream : public basic_istream<_CharT>
{
  virtual ~basic_iostream(){}
};

basic_iostream<char> res;

int main() {
}

// basic_iostream's complete dtor calls its base dtor, then its
// virtual base's dtor.
//  CHECK: define linkonce_odr {{.*}} @_ZN14basic_iostreamIcED1Ev(ptr {{.*}}%this) unnamed_addr
//  CHECK: call {{.*}} @_ZN14basic_iostreamIcED2Ev
//  CHECK: call {{.*}} @_ZN9basic_iosD2Ev

// basic_istream's complete dtor calls the base dtor,
// then its virtual base's base dtor.
//  CHECK: define linkonce_odr {{.*}} @_ZN13basic_istreamIcED1Ev(ptr {{.*}}%this) unnamed_addr
//  CHECK: call {{.*}} @_ZN13basic_istreamIcED2Ev
//  CHECK: call {{.*}} @_ZN9basic_iosD2Ev

// basic_istream's deleting dtor calls the complete dtor, then
// operator delete().
//  CHECK: define linkonce_odr {{.*}} @_ZN13basic_istreamIcED0Ev(ptr {{.*}}%this) unnamed_addr
//  CHECK: call {{.*}} @_ZN13basic_istreamIcED1Ev
//  CHECK: call {{.*}} @_ZdlPv

// basic_iostream's deleting dtor calls its complete dtor, then
// operator delete().
//  CHECK: define linkonce_odr {{.*}} @_ZN14basic_iostreamIcED0Ev(ptr {{.*}}%this) unnamed_addr
//  CHECK: call {{.*}} @_ZN14basic_iostreamIcED1Ev
//  CHECK: call {{.*}} @_ZdlPv

// basic_istream's base dtor is a no-op.
//  CHECK: define linkonce_odr {{.*}} @_ZN13basic_istreamIcED2Ev(ptr {{.*}}%this, ptr noundef %vtt) unnamed_addr
//  CHECK-NOT: call
//  CHECK: }

// basic_iostream's base dtor calls its non-virtual base dtor.
//  CHECK: define linkonce_odr {{.*}} @_ZN14basic_iostreamIcED2Ev(ptr {{.*}}%this, ptr noundef %vtt) unnamed_addr
//  CHECK: call {{.*}} @_ZN13basic_istreamIcED2Ev
//  CHECK: }
