(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
20001023-1.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2 -fomit-frame-pointer" } */
       3  
       4  extern void abort (void);
       5  extern void exit (int);
       6  
       7  unsigned char a[256], b[256], c[256], d[256];
       8  
       9  void foo(unsigned char *x, int y, unsigned char *z)
      10  {
      11  }
      12  
      13  void bar(int x, ...)
      14  {
      15  }
      16  
      17  void baz(int y)
      18  {
      19    if (y != 0x10)
      20      abort();
      21  }
      22  
      23  void test(int x, unsigned char *y)
      24  {
      25    unsigned char g,h,j, k[5],l[5], m[30];
      26    int i;
      27  
      28    bar(x, y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8], y[9]);
      29    for (i = 5; --i >= 0; )
      30      k[i] = y[5 + i] ^ a[i] ^ c[i];
      31  
      32    foo(&m[29], sizeof m, k);
      33    g = d[x] ^ c[x];
      34    bar(x, d[x], x, c[x]);
      35    baz(g);
      36    for (i = 5, h = 0; --i >= 0; h = y[i])
      37      {
      38        j = m[25 + i] ^ y[i];
      39        j = b[j] ^ g;
      40        k[i] = c[j] ^ h;
      41      }
      42    for (i = 5, h = 0; --i >= 0; h = k[i])
      43      {
      44        j = m[20 + i] ^ k[i];
      45        j = b[j] ^ g;
      46        l[i] = c[j] ^ h;
      47      }
      48    for (i = 5, h = 0; --i >= 0; h = l[i]) {
      49      j = m[15 + i] ^ l[i];
      50      j = b[j] ^ g;
      51      j = c[j] ^ h;
      52      k[i] = a[j] ^ c[j];
      53    }
      54  }
      55  
      56  int main()
      57  {
      58    c[4] = 0xdc;
      59    d[4] = 0xcc;
      60    test(4, a);
      61    exit(0);
      62  }