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