/* PR debug/82718 */ /* { dg-do assemble } */ /* { dg-options "-O2 -gdwarf-5" } */ /* { dg-skip-if "AIX DWARF5" { powerpc-ibm-aix* } } */ extern int e; extern long foo (int, void *, unsigned long, unsigned long); struct S { int f; unsigned long t, s; }; static inline long bv (int x, void *y, unsigned long z, unsigned long w) { long a = 0; do { long g; do g = (long int) (foo (x, y + a, z - a, w + a)); while (g == -1L && e == 9959); if (g <= 0) return g < 0 ? g : a; a += g; } while ((unsigned long) a < z); return a; } const char * baz (struct S *x) { unsigned long h = 8; char *j = 0; unsigned long z = x->f; if (__builtin_expect (!!((unsigned long) bv (x->f, j, z, x->t + h + 10) != z), 0)) return 0; x->s = z; return j; }