aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/ext/underlying_type1.C
blob: 999cd9f35bd97df18fd6b311905a38561c859b95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// { dg-do compile }

struct B { };
union U { };

template<typename T>
  struct underlying_type
  { typedef __underlying_type(T) type; }; // { dg-error "not an enumeration" }

__underlying_type(int) i1; // { dg-error "not an enumeration|invalid" }
__underlying_type(A)   i2; // { dg-error "expected|type" }
__underlying_type(B)   i3; // { dg-error "not an enumeration|invalid" }
__underlying_type(U)   i4; // { dg-error "not an enumeration|invalid" }

underlying_type<int>::type i5;
underlying_type<A>::type   i6; // { dg-error "not declared|template|expected" }
underlying_type<B>::type   i7;
underlying_type<U>::type   i8;