blob: 89d1068a2662161b7314955016fbd99220f0954d [file] [log] [blame]
/* Verify that -Warray-bounds suppression via #pragma GCC diagnostic
works at any call site in an inlining stack
{ dg-do compile }
{ dg-options "-O2 -Wall" } */
int a[4];
void f1 (int *p, int i)
{
#pragma GCC diagnostic push
#if IGNORE == '1'
# pragma GCC diagnostic ignored "-Warray-bounds"
#endif
p[i + 1] = 0;
#pragma GCC diagnostic pop
}
void f2 (int *p, int i)
{
#pragma GCC diagnostic push
#if IGNORE == '2'
# pragma GCC diagnostic ignored "-Warray-bounds"
#endif
f1 (p + 1, i + 1);
#pragma GCC diagnostic pop
}
void f3 (int *p, int i)
{
#pragma GCC diagnostic push
#if IGNORE == '3'
# pragma GCC diagnostic ignored "-Warray-bounds"
#endif
f2 (p + 1, i + 1);
#pragma GCC diagnostic pop
}
void f4 (void)
{
#pragma GCC diagnostic push
#if IGNORE == '4'
# pragma GCC diagnostic ignored "-Warray-bounds"
#endif
f3 (a, 1);
#pragma GCC diagnostic pop
}