[mlir][scf] Track replacements using a listener in TileAndFuse (#120999)
[llvm-project.git] / clang / test / CXX / temp / temp.spec / temp.explicit / p7.cpp
blob7398dca7ba1ce3dc8ed11914ea051b241a715205
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 template<typename T>
4 struct X0 {
5 struct MemberClass {
6 T member; // expected-error{{with function type}}
7 };
9 T* f0(T* ptr) {
10 return ptr + 1; // expected-error{{pointer to the function}}
13 static T* static_member;
16 template<typename T>
17 T* X0<T>::static_member = ((T*)0) + 1; // expected-error{{pointer to the function}}
19 template class X0<int>; // okay
21 template class X0<int(int)>; // expected-note 3{{requested here}}
23 // Specialize everything, so that the explicit instantiation does not trigger
24 // any diagnostics.
25 template<>
26 struct X0<int(long)>::MemberClass { };
28 typedef int int_long_func(long);
29 template<>
30 int_long_func *X0<int_long_func>::f0(int_long_func *) { return 0; }
32 template<>
33 int_long_func *X0<int(long)>::static_member;
35 template class X0<int(long)>;