1 // PR c++/40639
2 // { dg-do compile { target c++11 } }
3 
4 template< typename T >
5 struct wrap {
6    enum E : T { val };
7 };
8 
9 template< typename T >
10 struct dependant {
11    enum E : typename T::type { val };
12 };
13 
14 template<typename T>
15 struct identity {
16    typedef T type;
17 };
18 
19 wrap<int> x;
20 dependant<identity<int>> y;
21