(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr91269.c
       1  /* PR target/91269 */
       2  /* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
       3  
       4  /* { dg-do assemble } */
       5  /* { dg-options "-O2 -Wno-int-conversion" }  */
       6  /* { dg-additional-options "-fcall-used-g6 -fPIE -mcpu=niagara4" { target sparc*-*-* } } */
       7  
       8  struct m;
       9  
      10  enum { a = 2 };
      11  int b[1];
      12  int d[2715];
      13  int e, f, h;
      14  enum { i = 2 } j;
      15  inline int c(int k) {
      16    char *cp;
      17    if (k >= 62 && k <= 247)
      18      cp = b[k];
      19    if (cp)
      20      return 65533;
      21    return 2;
      22  }
      23  inline int g(int k) {
      24    if (k < sizeof(d))
      25      return e;
      26    return 0;
      27  }
      28  
      29  int u(struct m*, char*, char*);
      30  
      31  int l(struct m *k, char n, long o, int *p) {
      32    int q, flags = j, r, s, lasttwo = *p;
      33    char inptr, outptr;
      34    while (inptr) {
      35      if (__builtin_expect(h, 0))
      36        break;
      37      unsigned ch = inptr;
      38      if (lasttwo) {
      39        long need = lasttwo >> 3;
      40        if (__builtin_expect(need > n, 0))
      41          break;
      42      } else if (s == i) {
      43        long t = c(ch);
      44        if (t != 65533) {
      45          int jch = g(ch);
      46          if (jch & 8)
      47            continue;
      48        }
      49      }
      50      if (ch <= 5)
      51        ;
      52      else {
      53        long t = c(ch);
      54        if (t != 65533)
      55          ;
      56        else {
      57          switch (f >> 8)
      58          case 79:
      59            q = f == 20308 || f == 20350;
      60          if (q)
      61            if (j)
      62              r = u(k, &inptr, &outptr);
      63          s = *p;
      64          if (r)
      65            if (o && flags & a)
      66              break;
      67        }
      68      }
      69    }
      70  }