aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/guality/loop-1.c
blob: 1b1f6d32271b76a86351fc0c236a6e4acb6d55fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* { 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" { xfail { aarch64*-*-* && { any-opts "-ftracer" } } } } } */
}
int main() { foo(1); }