1// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3enum Enum { val = 1 };
4template <Enum v> struct C {
5  typedef C<v> Self;
6};
7template struct C<val>;
8
9template<typename T>
10struct get_size {
11  static const unsigned value = sizeof(T);
12};
13
14template<typename T>
15struct X0 {
16  enum {
17    Val1 = get_size<T>::value,
18    Val2,
19    SumOfValues = Val1 + Val2
20  };
21};
22
23X0<int> x0i;
24
25namespace rdar8020920 {
26  template<typename T>
27  struct X {
28    enum { e0 = 32 };
29
30    unsigned long long bitfield : e0;
31
32    void f(int j) {
33      bitfield + j;
34    }
35  };
36}
37