1! { dg-do compile }
2! { dg-options "-O -ffast-math -fdump-tree-original -fdump-tree-optimized" }
3
4! Verify we associate properly during folding
5! Verify we propagate constants in the presence of PAREN_EXPR
6
7function test(a)
8  real b, c, d
9  c = a
10  d = 5
11  b = (c + 5 - c)
12  b = (c + d - c)
13  test = a + b - 5
14end
15
16! { dg-final { scan-tree-dump "b = 5" "original" } }
17! { dg-final { scan-tree-dump "c_. = .a" "optimized" } }
18! { dg-final { scan-tree-dump "return c_.;" "optimized" } }
19! { dg-final { cleanup-tree-dump "original" } }
20! { dg-final { cleanup-tree-dump "optimized" } }
21