/* PR target/7177 Problem with cris-axis-elf: ICE in global. Origin: hp@axis.com. */ typedef __SIZE_TYPE__ size_t; void f1 (void *); char *f2 (const char *); int atoi (const char *); char *strchr (const char *, int); int strcmp (const char *, const char *); size_t strlen (const char *); typedef enum { A, B, C } t1; extern const char _v[]; static t1 f (const char* p1, const char* p2, char p3) { char *v1; char *v2; char *a; char *v3; char *v4; char *v5; char *e; char *v6; t1 r = C; v1 = f2 (p2); v4 = f2 (p1); a = v2 = v1; e = v5 = v4; memcpy (&e, &e, sizeof (e)); v3 = strchr (v2, ','); v6 = strchr (v5, ','); while ((_v + 1)[(unsigned) *a] & 4) a++; while ((_v + 1)[(unsigned) *e] & 4) e++; if (a == v3 && e == v6) { if (p3) r = atoi (v5) < atoi (v2) ? B : A; else r = atoi (v5) > atoi (v2) ? B : A; v2 = ++a; v5 = ++e; v3 = strchr (v2, ','); v6 = strchr (v5, ','); while ((_v + 1)[(unsigned) *a] & 4) a++; while ((_v + 1)[(unsigned) *e] & 4) e++; if (a == v3 && e == v6) { if (r == B) r = B; else if (p3) r = atoi (v5) < atoi (v2) ? B : A; else r = atoi (v5) > atoi (v2) ? B : A; } else r = C; } f1 (v1); f1 (v4); return r; }