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 <> 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> 25 void T<K>::F(int a[8 * K]) {} // no-warning 26