/* { dg-do link } */ /* { dg-options "-O2 -fdump-tree-vrp1" } */ /* { dg-final { scan-tree-dump-not "link_error" "vrp1"} } */ /* { dg-final { cleanup-tree-dump "vrp1" } } */ extern void link_error (void); __attribute__((noinline, noclone)) int foo (unsigned int n, int r) { int i; if (n > 0) { asm (""); if (n < 10) { asm (""); do { --n; r *= 2; if (n >= 9) link_error (); } while (n > 0); } } return r + n; } int main () { foo (7, 2); return 0; }