(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr51244-21.c
       1  /* { dg-do run } */
       2  #include <assert.h>
       3  
       4  static inline int
       5  blk_oversized_queue (int* q)
       6  {
       7    if (q[2])
       8      return q[1] != 0;
       9    return q[0] == 0;
      10  }
      11  
      12  int __attribute__ ((noinline))
      13  get_request (int* q, int rw)
      14  {
      15    if (blk_oversized_queue (q))
      16      {
      17        if ((rw == 1) || (rw == 0))
      18  	return -33;
      19  
      20        return 0;
      21      }
      22  
      23    return -100;
      24  }
      25  
      26  int main (void)
      27  {
      28    int x[3]; 
      29    int r;
      30  
      31    x[0] = 0; x[1] = 1; x[2] = 1;
      32    r = get_request (x, 0);
      33    assert (r == -33);
      34  
      35    r = get_request (x, 1);
      36    assert (r == -33);
      37  
      38    r = get_request (x, 2);
      39    assert (r == 0);
      40  
      41  
      42    x[0] = 0; x[1] = 0; x[2] = 1;
      43    r = get_request (x, 0);
      44    assert (r == -100);
      45  
      46    r = get_request (x, 1);
      47    assert (r == -100);
      48  
      49    r = get_request (x, 2);
      50    assert (r == -100);
      51  
      52  
      53    x[0] = 0; x[1] = 0; x[2] = 0;
      54    r = get_request (x, 0);
      55    assert (r == -33);
      56  
      57    r = get_request (x, 1);
      58    assert (r == -33);
      59  
      60    r = get_request (x, 2);
      61    assert (r == 0);
      62  
      63  
      64    x[0] = 0; x[1] = 0; x[2] = 0;
      65    r = get_request (x, 0);
      66    assert (r == -33);
      67  
      68    r = get_request (x, 1);
      69    assert (r == -33);
      70  
      71    r = get_request (x, 2);
      72    assert (r == 0);
      73  
      74    return 0;
      75  }