1 /* PR c/101289 - bogus -Wvla-parameter warning when using const bound
2 { dg-do compile }
3 { dg-options "-Wall" } */
4
5 void f1ci_can (const int n, char a[n]);
6 void f1ci_can (const int n, char a[n]); // { dg-bogus "-Wvla-parameter" }
7
8 void f2ci_can (const int m, char a[m]);
9 void f2ci_can (int n, char a[n]); // { dg-bogus "-Wvla-parameter" }
10
11 void f3i_can (int n, char a[n]);
12 void f3i_can (const int n, char a[n]); // { dg-bogus "-Wvla-parameter" }
13
14 void f4i_can (int n, char a[n]);
15 void f4i_can (const int n, char a[(int)n]); // { dg-bogus "-Wvla-parameter" }
16
17 void f5i_can (int n, char a[(char)n]);
18 void f5i_can (const int n, char a[(char)n]); // { dg-bogus "-Wvla-parameter" }
19
20 void f6i_can (int m, char a[(char)m]);
21 void f6i_can (const int n, char a[(char)n]); // { dg-bogus "-Wvla-parameter" "" { xfail *-*-* } }
22
23
24 /* PR c/97548 - bogus -Wvla-parameter on a bound expression involving
25 a parameter */
26
27 int n;
28
29 void f7ianp1 (int, int[n + 1]);
30 void f7ianp1 (int, int[n + 1]);
31 void f7ianp1 (int, int[n + 2]); // { dg-warning "-Wvla-parameter" }
32
33 void f8iakp1 (int k, int [k + 1]);
34 void f8iakp1 (int k, int [k + 1]); // { dg-bogus "-Wvla-parameter" }
35 void f8iakp1 (int k, int [1 + k]); // { dg-bogus "-Wvla-parameter" }
36 void f8iakp1 (int k, int [k + 2]); // { dg-warning "-Wvla-parameter" }