1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only -verify %s 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// Test instantiation of member functions of class templates defined out-of-line 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T, typename U> 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct X0 { 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void f(T *t, const U &u); 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void f(T *); 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T, typename U> 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid X0<T, U>::f(T *t, const U &u) { 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao *t = u; // expected-error{{not assignable}} 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid test_f(X0<float, int> xfi, X0<void, int> xvi, float *fp, void *vp, int i) { 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao xfi.f(fp, i); 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao xvi.f(vp, i); // expected-note{{instantiation}} 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 18