modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20010129-1.c (about)

     1  /* { dg-options "-mtune=i686" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
     2  
     3  extern void abort (void);
     4  extern void exit (int);
     5  
     6  long baz1 (void *a)
     7  {
     8    static long l;
     9    return l++;
    10  }
    11  
    12  int baz2 (const char *a)
    13  {
    14    return 0;
    15  }
    16  
    17  int baz3 (int i)
    18  {
    19    if (!i)
    20      abort ();
    21    return 1;
    22  }
    23  
    24  void **bar;
    25  
    26  int foo (void *a, long b, int c)
    27  {
    28    int d = 0, e, f = 0, i;
    29    char g[256];
    30    void **h;
    31  
    32    g[0] = '\n';
    33    g[1] = 0;
    34  
    35    while (baz1 (a) < b) {
    36      if (g[0] != ' ' && g[0] != '\t') {
    37        f = 1;
    38        e = 0;
    39        if (!d && baz2 (g) == 0) {
    40  	if ((c & 0x10) == 0)
    41  	  continue;
    42  	e = d = 1;
    43        }
    44        if (!((c & 0x10) && (c & 0x4000) && e) && (c & 2))
    45  	continue;
    46        if ((c & 0x2000) && baz2 (g) == 0)
    47  	continue;
    48        if ((c & 0x1408) && baz2 (g) == 0)
    49  	continue;
    50        if ((c & 0x200) && baz2 (g) == 0)
    51  	continue;
    52        if (c & 0x80) {
    53  	for (h = bar, i = 0; h; h = (void **)*h, i++)
    54  	  if (baz3 (i))
    55  	    break;
    56        }
    57        f = 0;
    58      }
    59    }
    60    return 0;
    61  }
    62  
    63  int main ()
    64  {
    65    void *n = 0;
    66    bar = &n;
    67    foo (&n, 1, 0xc811);
    68    exit (0);
    69  }