blob: 8da447d5379b4ac226fd3245625bc7b8bb046f9a [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-fno-tree-scev-cprop -fno-tree-vectorize -g" } */
#include "../nop.h"
void __attribute__((noipa,noinline))
foo (int n)
{
if (n == 0)
return;
int i = 0;
do
{
++i; /* { dg-final { gdb-test . "i" "0" } } */
}
while (i < n);
/* The following works only with final value replacement or with the NOP
but not without (which means -Og). Vectorization breaks it, so disable
that. At -O3 it currently fails, PR89983. */
__asm__ volatile (NOP : : "g" (i) : "memory"); /* { dg-final { gdb-test . "i" "1" } } */
}
int main() { foo(1); }