| /* 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" } } */ | |