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