Home | History | Annotate | Download | only in expr.static.cast
      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