xref: /llvm-project/clang/test/Sema/array-parameter.cpp (revision 66fa2847a775dda27ddcac3832769441727db42f)
1 // RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -fsyntax-only -Warray-parameter -verify %s
2 
3 template <int N>
4 void func(int i[10]); // expected-note {{previously declared as 'int[10]' here}}
5 
6 template <int N>
7 void func(int i[N]); // expected-warning {{argument 'i' of type 'int[N]' with mismatched bound}}
8 
9 template <int N>
10 void func(int (&Val)[N]);
11 
12 template <>
func(int (& Val)[10])13 void func<10>(int (&Val)[10]) {
14 }
15 
16 static constexpr int Extent = 10;
17 void funk(int i[10]);
18 void funk(int i[Extent]); // no-warning
19 
20 template<int K>
21 struct T {
22   static void F(int a[8 * K]);
23 };
24 template<int K>
F(int a[8* K])25 void T<K>::F(int a[8 * K]) {} // no-warning
26