Daily bump.
[gcc.git] / gcc / testsuite / g++.dg / warn / Warray-bounds-25.C
bloba93da03756084b1905ea0f3068a6ed28b4fed85e
1 /* PR middle-end/101601 - [12 Regression] -Warray-bounds triggers error:
2    arrays of functions are not meaningful
3    { dg-do compile }
4    { dg-options "-O2 -Wall" } */
6 typedef void Fvv (void);
8 extern Fvv* pf;       // { dg-message "'pf'" }
10 void f (...);
12 void test_funptr (void)
14   f (&pf);
15   f (&pf + 1);
16   f (&pf + 2);        // { dg-warning "subscript 2 is outside array bounds of 'void \\\(\\\* ?\\\[1]\\\)\\\(\\\)'" }
19 typedef int Fii_ (int, ...);
21 extern Fii_* pfa[3];  // { dg-message "'pfa'" }
23 void test_funptr_array (void)
25   f (pfa);
26   f (pfa + 1);
27   f (pfa + 2);
28   f (pfa + 3);
29   f (pfa + 4);        // { dg-warning "subscript 4 is outside array bounds of 'int \\\(\\\* ?\\\[3]\\\)\\\(int, ...\\\)'" }
33 struct A;
34 typedef void (A::*MFvv)(void);
36 MFvv pmf;
38 void test_memfunptr (void)
40   f (&pmf);
41   f (&pmf + 1);
42   f (&pmf + 2);       // { dg-warning "subscript 2 is outside array bounds of 'void \\\(A::\\\* ?\\\[1]\\\)\\\(\\\)'" }
46 typedef int (A::*MFii)(int);
48 MFii pmfa[4];
50 void test_memfunptr_array (void)
52   f (pmfa);
53   f (pmfa + 1);
54   f (pmfa + 2);
55   f (pmfa + 3);
56   f (pmfa + 4);
57   f (pmfa + 5);       // { dg-warning "subscript 5 is outside array bounds of 'int \\\(A::\\\* ?\\\[4]\\\)\\\(int\\\)'" }