PR c++/56973, DR 696 - capture constant variables only as needed.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / constexpr-66093.C
blobad3169210d29a41137f51aceea5516a6c042cb3c
1 // { dg-do run { target c++14 } }
3 #include <cassert>
5 constexpr int n = 10;
7 struct A {
8     constexpr operator const int*() const {
9         return data;
10     }
11   
12     constexpr operator int*() {
13         return data;
14     }
15   
16 private:
17     int data[n];
20 constexpr A f() {
21     A a{};
22     for (int i = 1; i <= n; i++) {
23         a[i] = i;
24     }
25     return a;
28 A a = f();
30 int main()
32     for (int i = 0; i < n; i++) {
33         assert (a[i] == i);
34     }