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