29 lines
538 B
C
29 lines
538 B
C
/* A test for final value replacement and higher-order ivs,
|
|
see PR 22442. */
|
|
|
|
/* { dg-do compile } */
|
|
/* { dg-options "-O1 -fdump-tree-optimized" } */
|
|
|
|
void bar (unsigned);
|
|
|
|
void foo (void)
|
|
{
|
|
unsigned i, a;
|
|
|
|
for (i = 0; i < 5; i++)
|
|
a = i * i;
|
|
|
|
bar (a);
|
|
}
|
|
|
|
/* Final value of a gets replaced. */
|
|
|
|
/* { dg-final { scan-tree-dump-times "\\(16\\)" 1 "optimized" } } */
|
|
|
|
/* And the empty loop is removed. */
|
|
|
|
/* { dg-final { scan-tree-dump-times "if " 0 "optimized" } } */
|
|
|
|
/* { dg-final { cleanup-tree-dump "optimized" } } */
|
|
|