| // PR c++/69509 | |
| // { dg-do compile { target c++14 } } | |
| constexpr int | |
| fn_bad (int n) | |
| { | |
| __extension__ int a [n] = { 0 }; | |
| int z = a [0] + (n ? fn_bad (n - 1) : 0); // { dg-message "in .constexpr. expansion of " } | |
| return z; | |
| } | |
| constexpr int | |
| fn_ok (int n) | |
| { | |
| __extension__ int a [n] = { 0 }; | |
| int z = a [0] + (n > 1 ? fn_ok (n - 1) : 0); | |
| return z; | |
| } | |
| constexpr int i1 = fn_ok (3); | |
| constexpr int i2 = fn_bad (3); // { dg-error "array subscript|in .constexpr. expansion of " } |