(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
loop-3.c
       1  /* PR optimization/13985 */
       2  /* Copied from gcc.c-torture/compile/930621-1.c */
       3  
       4  /* { dg-do compile } */
       5  /* { dg-options "-O3" } */
       6  /* { dg-options "-O3 -mtune=i386" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
       7  /* { dg-add-options stack_size } */
       8  
       9  #if defined(STACK_SIZE) && (STACK_SIZE < 65536)
      10  # define BYTEMEM_SIZE 10000L
      11  #endif
      12  
      13  #ifndef BYTEMEM_SIZE
      14  # define BYTEMEM_SIZE 45000L
      15  #endif
      16  
      17  int bytestart[5000 + 1];
      18  unsigned char modtext[400 + 1];
      19  unsigned char bytemem[2][BYTEMEM_SIZE + 1];
      20  
      21  long
      22  modlookup (int l)
      23  {
      24    signed char c;
      25    long j;
      26    long k;
      27    signed char w;
      28    long p;
      29    while (p != 0)
      30      {
      31        while ((k < bytestart[p + 2]) && (j <= l) && (modtext[j] == bytemem[w][k]))
      32  	{
      33  	  k = k + 1;
      34  	  j = j + 1;
      35  	}
      36        if (k == bytestart[p + 2])
      37  	if (j > l)
      38  	  c = 1;
      39  	else c = 4;
      40        else if (j > l)
      41  	c = 3;
      42        else if (modtext[j] < bytemem[w][k])
      43  	c = 0;
      44        else c = 2;
      45      }
      46  }