/* { dg-do compile { target c++11 } } */ | |
/* { dg-options "-O3 -fdump-tree-optimized" } */ | |
typedef int Items[2]; | |
struct ItemArray | |
{ | |
Items items; | |
int sum_x2() const; | |
}; | |
int ItemArray::sum_x2() const | |
{ | |
int total = 0; | |
for (int item : items) | |
{ | |
total += item; | |
} | |
return total; | |
} | |
/* We should be able to compute the number of iterations to two, unroll | |
the loop and end up with a single basic-block in sum_x2. */ | |
/* { dg-final { scan-tree-dump-times "bb" 1 "optimized" } } */ |