Home | History | Annotate | Download | only in PCH
      1 // RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only %s
      2 // Just don't crash.
      3 #if !defined(RUN1)
      4 #define RUN1
      5 
      6 struct CXXRecordDecl { CXXRecordDecl(int); };
      7 
      8 template <typename T, typename U>
      9 T cast(U u) {
     10   return reinterpret_cast<T&>(u);
     11 }
     12 
     13 void test1() {
     14   cast<float>(1);
     15 }
     16 
     17 #elif !defined(RUN2)
     18 #define RUN2
     19 
     20 template <typename T>
     21 void test2(T) {
     22   cast<CXXRecordDecl>(1.0f);
     23 }
     24 
     25 #else
     26 
     27 void test3() {
     28   cast<CXXRecordDecl>(1.0f);
     29   test2(1);
     30 }
     31 
     32 #endif
     33