1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify %s 2*67e74705SXin Li // expected-no-diagnostics 3*67e74705SXin Li 4*67e74705SXin Li // PR8345 f(T * value)5*67e74705SXin Litemplate<typename T> T f(T* value) { 6*67e74705SXin Li return __sync_add_and_fetch(value, 1); 7*67e74705SXin Li } g(long long * x)8*67e74705SXin Liint g(long long* x) { return f(x); } g(int * x)9*67e74705SXin Liint g(int* x) { return f(x); } 10*67e74705SXin Li 11*67e74705SXin Li namespace PR11320 { 12*67e74705SXin Li template<typename T> g(unsigned * x)13*67e74705SXin Li void g(unsigned *x) { 14*67e74705SXin Li __sync_bool_compare_and_swap(x, 1, 4); 15*67e74705SXin Li } h()16*67e74705SXin Li void h() { g<int>(0); } 17*67e74705SXin Li } 18