blob: af375a4d055df5ffbaa9f93509882112e366c729 [file] [log] [blame]
// PR c++/79900 - ICE in strip_typedefs
// { dg-do compile }
// { dg-options "-Wpadded" }
template <class> struct A;
template <typename> struct B { // { dg-warning "padding struct size to alignment boundary" }
long long _M_off;
char _M_state;
};
template <> struct A<char> { typedef B<int> pos_type; };
enum _Ios_Openmode {};
struct C {
typedef _Ios_Openmode openmode;
};
template <typename, typename _Traits> struct D {
typedef typename _Traits::pos_type pos_type;
pos_type m_fn1(pos_type, C::openmode);
};
template class D<char, A<char> >;
template <typename _CharT, typename _Traits>
typename D<_CharT, _Traits>::pos_type D<_CharT, _Traits>::m_fn1(pos_type x,
C::openmode) { return x; }