1*cc5b7727Sserge-sans-paille // RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -fsyntax-only -Warray-parameter -verify %s 2*cc5b7727Sserge-sans-paille void f0(int a[]); 3*cc5b7727Sserge-sans-paille void f0(int *a); // no warning 4*cc5b7727Sserge-sans-paille 5*cc5b7727Sserge-sans-paille void f1(int a[]); // expected-note {{previously declared as 'int[]' here}} 6*cc5b7727Sserge-sans-paille void f1(int a[2]); // expected-warning {{argument 'a' of type 'int[2]' with mismatched bound}} 7*cc5b7727Sserge-sans-paille 8*cc5b7727Sserge-sans-paille void f2(int a[3]); // expected-note {{previously declared as 'int[3]' here}} 9*cc5b7727Sserge-sans-paille void f2(int a[2]); // expected-warning {{argument 'a' of type 'int[2]' with mismatched bound}} 10*cc5b7727Sserge-sans-paille 11*cc5b7727Sserge-sans-paille void f3(int a[const 2]); 12*cc5b7727Sserge-sans-paille void f3(int a[2]); // no warning 13*cc5b7727Sserge-sans-paille 14*cc5b7727Sserge-sans-paille void f4(int a[static 2]); 15*cc5b7727Sserge-sans-paille void f4(int a[2]); // no warning 16*cc5b7727Sserge-sans-paille 17*cc5b7727Sserge-sans-paille void f5(int a[restrict 2]); 18*cc5b7727Sserge-sans-paille void f5(int a[2]); // no warning 19*cc5b7727Sserge-sans-paille 20*cc5b7727Sserge-sans-paille void f6(int a[volatile 2]); 21*cc5b7727Sserge-sans-paille void f6(int a[2]); // no warning 22*cc5b7727Sserge-sans-paille 23*cc5b7727Sserge-sans-paille void f7(int a[*]); 24*cc5b7727Sserge-sans-paille void f7(int a[]); // no warning 25*cc5b7727Sserge-sans-paille 26*cc5b7727Sserge-sans-paille void f8(int n, int a[*]); // expected-note {{previously declared as 'int[*]' here}} 27*cc5b7727Sserge-sans-paille void f8(int n, int a[n]); // expected-warning {{argument 'a' of type 'int[n]' with mismatched bound}} 28*cc5b7727Sserge-sans-paille 29*cc5b7727Sserge-sans-paille void f9(int *a); 30*cc5b7727Sserge-sans-paille void f9(int a[2]); 31*cc5b7727Sserge-sans-paille void f9(int a[]); // expected-warning {{argument 'a' of type 'int[]' with mismatched bound}} 32*cc5b7727Sserge-sans-paille // expected-note@-2 {{previously declared as 'int[2]' here}} f9(int a[2])33*cc5b7727Sserge-sans-paillevoid f9(int a[2]) // expected-warning {{argument 'a' of type 'int[2]' with mismatched bound}} 34*cc5b7727Sserge-sans-paille // expected-note@-3 {{previously declared as 'int[]' here}} 35*cc5b7727Sserge-sans-paille {} 36