blob: 8c03ba8dab23cbad85a524a8085ce378c42f3dec [file] [log] [blame]
/* PR target/91269 */
/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
/* { dg-do assemble } */
/* { dg-options "-O2 -Wno-int-conversion" } */
/* { dg-additional-options "-fcall-used-g6 -fPIE -mcpu=niagara4" { target sparc*-*-* } } */
struct m;
enum { a = 2 };
int b[1];
int d[2715];
int e, f, h;
enum { i = 2 } j;
inline int c(int k) {
char *cp;
if (k >= 62 && k <= 247)
cp = b[k];
if (cp)
return 65533;
return 2;
}
inline int g(int k) {
if (k < sizeof(d))
return e;
return 0;
}
int u(struct m*, char*, char*);
int l(struct m *k, char n, long o, int *p) {
int q, flags = j, r, s, lasttwo = *p;
char inptr, outptr;
while (inptr) {
if (__builtin_expect(h, 0))
break;
unsigned ch = inptr;
if (lasttwo) {
long need = lasttwo >> 3;
if (__builtin_expect(need > n, 0))
break;
} else if (s == i) {
long t = c(ch);
if (t != 65533) {
int jch = g(ch);
if (jch & 8)
continue;
}
}
if (ch <= 5)
;
else {
long t = c(ch);
if (t != 65533)
;
else {
switch (f >> 8)
case 79:
q = f == 20308 || f == 20350;
if (q)
if (j)
r = u(k, &inptr, &outptr);
s = *p;
if (r)
if (o && flags & a)
break;
}
}
}
}