1 | // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s |
2 | // expected-no-diagnostics |
3 | |
4 | enum class EC { ec1 }; |
5 | |
6 | void test0(EC ec) { |
7 | (void)static_cast<bool>(ec); |
8 | (void)static_cast<bool>(EC::ec1); |
9 | (void)static_cast<char>(ec); |
10 | (void)static_cast<char>(EC::ec1); |
11 | (void)static_cast<int>(ec); |
12 | (void)static_cast<int>(EC::ec1); |
13 | (void)static_cast<unsigned long>(ec); |
14 | (void)static_cast<unsigned long>(EC::ec1); |
15 | (void)static_cast<float>(ec); |
16 | (void)static_cast<float>(EC::ec1); |
17 | (void)static_cast<double>(ec); |
18 | (void)static_cast<double>(EC::ec1); |
19 | } |
20 | |
21 | namespace PR9107 { |
22 | enum E {}; |
23 | template <class _Tp> inline _Tp* addressof(_Tp& __x) { |
24 | return (_Tp*)&(char&)__x; |
25 | } |
26 | void test() { |
27 | E a; |
28 | addressof(a); |
29 | } |
30 | } |
31 | |