p9-0x.cpp revision 8e8fb3be5bd78f0564444eca02b404566a5f3b5d
19258b6bc66e09368ada54001f619d53b4fc976d5ager@chromium.org// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s 243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen// expected-no-diagnostics 343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenenum class EC { ec1 }; 543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenvoid test0(EC ec) { 743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<bool>(ec); 843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<bool>(EC::ec1); 943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<char>(ec); 1043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<char>(EC::ec1); 1143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<int>(ec); 1243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<int>(EC::ec1); 1343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<unsigned long>(ec); 1443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<unsigned long>(EC::ec1); 1543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<float>(ec); 1643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<float>(EC::ec1); 1743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<double>(ec); 1843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen (void)static_cast<double>(EC::ec1); 1943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen} 2043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 2143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansennamespace PR9107 { 2243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen enum E {}; 2343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen template <class _Tp> inline _Tp* addressof(_Tp& __x) { 2443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen return (_Tp*)&(char&)__x; 2543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen } 2643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen void test() { 2743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen E a; 2843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen addressof(a); 2943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen } 3043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen} 319d58c2b1c27d8b2890b9bd46e57d3842b09e0292christian.plesner.hansen@gmail.com