103 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 -fsyntax-only -verify %s
 | 
						|
// expected-no-diagnostics
 | 
						|
 | 
						|
// PR5908
 | 
						|
template <typename Iterator>
 | 
						|
void Test(Iterator it) {
 | 
						|
  *(it += 1);
 | 
						|
}
 | 
						|
 | 
						|
namespace PR6045 {
 | 
						|
  template<unsigned int r>
 | 
						|
  class A
 | 
						|
  {
 | 
						|
    static const unsigned int member = r;
 | 
						|
    void f();
 | 
						|
  };
 | 
						|
  
 | 
						|
  template<unsigned int r>
 | 
						|
  const unsigned int A<r>::member;
 | 
						|
  
 | 
						|
  template<unsigned int r>
 | 
						|
  void A<r>::f() 
 | 
						|
  {
 | 
						|
    unsigned k;
 | 
						|
    (void)(k % member);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
namespace PR7198 {
 | 
						|
  struct A
 | 
						|
  {
 | 
						|
    ~A() { }
 | 
						|
  };
 | 
						|
 | 
						|
  template<typename T>
 | 
						|
  struct B {
 | 
						|
    struct C : A {};
 | 
						|
    void f()
 | 
						|
    {
 | 
						|
      C c = C();
 | 
						|
    }
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
namespace PR7724 {
 | 
						|
  template<typename OT> int myMethod()
 | 
						|
  { return 2 && sizeof(OT); }
 | 
						|
}
 | 
						|
 | 
						|
namespace test4 {
 | 
						|
  template <typename T> T *addressof(T &v) {
 | 
						|
    return reinterpret_cast<T*>(
 | 
						|
             &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
namespace test5 {
 | 
						|
  template <typename T> class chained_map {
 | 
						|
    int k;
 | 
						|
    void lookup() const {
 | 
						|
      int &v = (int &)k;
 | 
						|
    }
 | 
						|
  };
 | 
						|
}
 | 
						|
 | 
						|
namespace PR8795 {
 | 
						|
  template <class _CharT> int test(_CharT t)
 | 
						|
  {
 | 
						|
    int data [] = {
 | 
						|
      sizeof(_CharT) > sizeof(char)
 | 
						|
    };
 | 
						|
    return data[0];
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
template<typename T> struct CastDependentIntToPointer {
 | 
						|
  static void* f() {
 | 
						|
    T *x;
 | 
						|
    return ((void*)(((unsigned long)(x)|0x1ul)));
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
// Regression test for crasher in r194540.
 | 
						|
namespace PR10837 {
 | 
						|
  typedef void t(int);
 | 
						|
  template<typename> struct A {
 | 
						|
    void f();
 | 
						|
    static t g;
 | 
						|
  };
 | 
						|
  t *p;
 | 
						|
  template<typename T> void A<T>::f() {
 | 
						|
    p = g;
 | 
						|
  }
 | 
						|
  template struct A<int>;
 | 
						|
}
 | 
						|
 | 
						|
namespace PR18152 {
 | 
						|
  template<int N> struct A {
 | 
						|
    static const int n = {N};
 | 
						|
  };
 | 
						|
  template struct A<0>;
 | 
						|
}
 |