Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-thread1-details -fdump-tree-dce2" } */ extern int status, pt; extern int count; void foo (int N, int c, int b, int *a) { int i, flag; i = b -1; flag = 1; if (status && i < N && a[i] == b) { N--; flag = 0; if (pt) count++; } else for (i = -1, flag = 1; ++i < N && flag;) if (a[i] == b) { --N; flag = 0; if (i < N) a[i] = a[N]; else a[i] = 0; if (pt) count++; } if(status && flag) pt--; } /* There are 4 FSM jump threading opportunities, all of which will be realized, which will eliminate testing of FLAG, completely. */ /* { dg-final { scan-tree-dump-times "Registering FSM" 4 "thread1"} } */ /* There should be no assignments or references to FLAG, verify they're eliminated as early as possible. */ /* { dg-final { scan-tree-dump-not "if .flag" "dce2"} } */