| // RUN: %clang_cc1 -fsyntax-only -verify %s |
| |
| enum Enum { val = 1 }; |
| template <Enum v> struct C { |
| typedef C<v> Self; |
| }; |
| template struct C<val>; |
| |
| template<typename T> |
| struct get_size { |
| static const unsigned value = sizeof(T); |
| }; |
| |
| template<typename T> |
| struct X0 { |
| enum { |
| Val1 = get_size<T>::value, |
| Val2, |
| SumOfValues = Val1 + Val2 |
| }; |
| }; |
| |
| X0<int> x0i; |
| |
| namespace rdar8020920 { |
| template<typename T> |
| struct X { |
| enum { e0 = 32 }; |
| |
| unsigned long long bitfield : e0; |
| |
| void f(int j) { |
| bitfield + j; // expected-warning {{expression result unused}} |
| } |
| }; |
| } |