(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
uninit-pred-8_b.c
       1  /* { dg-do compile } */
       2  /* ???  Jump threading makes a mess of the logical-op-non-short-circuit=0 case
       3     so force it our way.  */
       4  /* { dg-options "-Wuninitialized -O2 --param logical-op-non-short-circuit=1" } */
       5  
       6  int g;
       7  void bar();
       8  void blah(int);
       9  
      10  int foo (int n, int l, int m, int r)
      11  {
      12    int v;
      13  
      14    if (n < 10 || m > 100 || r < 20 || l)
      15      v = r;
      16  
      17    if (m) g++;
      18    else   bar();
      19  
      20    if ( n < 10 ||  m > 100 || r < 20 )
      21        blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
      22  
      23    if ( n < 10 ||  m > 100 || r < 10 )
      24        blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
      25  
      26    return 0;
      27  }
      28  
      29  int foo_2 (int n, int l, int m, int r)
      30  {
      31    int v;
      32  
      33    if (n < 10 || m > 100 || r < 20 || l)
      34      v = r;
      35  
      36    if (m) g++;
      37    else   bar();
      38  
      39    if ( n < 10 ||  m > 100 || r < 20 )
      40        blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */
      41  
      42    if ( n < 10 ||  m > 100 || r < 30 )
      43        blah(v); /* { dg-warning "uninitialized" "warning" } */
      44  
      45    return 0;
      46  }