xref: /aosp_15_r20/external/clang/test/Sema/template-specialization.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -verify -fsyntax-only %s
2*67e74705SXin Li // Verify the absence of assertion failures when solving calls to unresolved
3*67e74705SXin Li // template member functions.
4*67e74705SXin Li 
5*67e74705SXin Li struct A {
6*67e74705SXin Li   template <typename T>
barA7*67e74705SXin Li   static void bar(int) { } // expected-note {{candidate template ignored: couldn't infer template argument 'T'}}
8*67e74705SXin Li };
9*67e74705SXin Li 
10*67e74705SXin Li struct B {
11*67e74705SXin Li   template <int i>
fooB12*67e74705SXin Li   static void foo() {
13*67e74705SXin Li     int array[i];
14*67e74705SXin Li     A::template bar(array[0]); // expected-error {{no matching function for call to 'bar'}}
15*67e74705SXin Li   }
16*67e74705SXin Li };
17*67e74705SXin Li 
main()18*67e74705SXin Li int main() {
19*67e74705SXin Li   B::foo<4>(); // expected-note {{in instantiation of function template specialization 'B::foo<4>'}}
20*67e74705SXin Li   return 0;
21*67e74705SXin Li }
22