(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
Wshadow-compatible-local-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-Wshadow=compatible-local" } */
       3  
       4  struct Bar {
       5  };
       6  
       7  struct Bar bar;       /* { dg-bogus "shadowed declaration" } */
       8  
       9  int val;              /* { dg-bogus "shadowed declaration" } */
      10  
      11  int func1(int x) {    /* { dg-bogus "shadowed declaration" } */
      12    int val;            /* { dg-bogus "shadows a global" } */
      13    val = x;
      14    return val;
      15  }
      16  
      17  int func2(int i) {
      18    int a = 3;          /* { dg-message "shadowed declaration" } */
      19    int j;              /* { dg-message "shadowed declaration" } */
      20  
      21    for (j = 0; j < i; ++j) {
      22      int a = j;        /* { dg-warning "shadows a previous local" } */
      23      int j = a + 1;    /* { dg-warning "shadows a previous local" } */
      24      func1(j);
      25    }
      26  
      27    return a;
      28  }
      29  
      30  void func4() {
      31    struct Bar bar;     /* { dg-bogus "shadowed declaration" } */
      32    if (val) {
      33      int bar;          /* { dg-bogus "shadows a previous local" } */
      34      func1(bar);
      35    }
      36  }