31 lines
726 B
C
31 lines
726 B
C
|
/* PR middle-end/101601 - [12 Regression] -Warray-bounds triggers error:
|
||
|
arrays of functions are not meaningful
|
||
|
{ dg-do compile }
|
||
|
{ dg-options "-O2 -Wall" } */
|
||
|
|
||
|
typedef void Fvv (void);
|
||
|
|
||
|
extern Fvv* pf; // { dg-message "'pf'" }
|
||
|
|
||
|
void f (void*);
|
||
|
|
||
|
void test_funptr (void)
|
||
|
{
|
||
|
f (&pf);
|
||
|
f (&pf + 1);
|
||
|
f (&pf + 2); // { dg-warning "subscript 2 is outside array bounds of 'void \\\(\\\*\\\[1]\\\)\\\(void\\\)'" }
|
||
|
}
|
||
|
|
||
|
typedef int Fii_ (int, ...);
|
||
|
|
||
|
extern Fii_* pfa[3]; // { dg-message "'pfa'" }
|
||
|
|
||
|
void test_funptr_array (void)
|
||
|
{
|
||
|
f (pfa);
|
||
|
f (pfa + 1);
|
||
|
f (pfa + 2);
|
||
|
f (pfa + 3);
|
||
|
f (pfa + 4); // { dg-warning "subscript 4 is outside array bounds of 'int \\\(\\\*\\\[3]\\\)\\\(int, ...\\\)'" }
|
||
|
}
|