| // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s |
| // expected-no-diagnostics |
| |
| enum class EC { ec1 }; |
| |
| void test0(EC ec) { |
| (void)static_cast<bool>(ec); |
| (void)static_cast<bool>(EC::ec1); |
| (void)static_cast<char>(ec); |
| (void)static_cast<char>(EC::ec1); |
| (void)static_cast<int>(ec); |
| (void)static_cast<int>(EC::ec1); |
| (void)static_cast<unsigned long>(ec); |
| (void)static_cast<unsigned long>(EC::ec1); |
| (void)static_cast<float>(ec); |
| (void)static_cast<float>(EC::ec1); |
| (void)static_cast<double>(ec); |
| (void)static_cast<double>(EC::ec1); |
| } |
| |
| namespace PR9107 { |
| enum E {}; |
| template <class _Tp> inline _Tp* addressof(_Tp& __x) { |
| return (_Tp*)&(char&)__x; |
| } |
| void test() { |
| E a; |
| addressof(a); |
| } |
| } |