/* { dg-do compile } */ /* { dg-options "-O1 -ftrapv" } */ unsigned int foo (unsigned int *x, const unsigned int *y, int z, unsigned int w) { unsigned int a, b, c, s; int j; j = -z; x -= j; y -= j; a = 0; do { asm volatile ("" : "=d" (b), "=d" (c) : "r" (y[j]), "d" (w)); /* { dg-error "'asm' operand has impossible constraints" } */ c += a; a = (c < a) + b; s = x[j]; c = s + c; a += (c < s); x[j] = c; } while (++j != 0); return a; }