1 // { dg-do compile }
2 // { dg-require-effective-target c++11 }
3 
4 constexpr unsigned int capacity = 1000;
5 
6 struct vec
7 {
8   int values[capacity];
9   unsigned int _size = 0;
sizevec10   unsigned int size() const noexcept { return _size; }
pushvec11   void push(int x)
12     {
13       values[size()] = x;
14       ++_size;
15     }
16 };
17 
main()18 int main()
19 {
20   vec v;
21   for(unsigned int i{0}; i != capacity; ++i)
22     {
23       v.push(i);
24     }
25   asm volatile("" : : "g"(&v) : "memory");
26 }
27 
28 // { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" { target vect_int } } }
29