| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/reg6769.d(14): Error: reinterpreting cast from `int[]` to `int[7]*` is not supported in CTFE |
| fail_compilation/reg6769.d(27): called from here: `reg6769a([0, 1, 2, 3, 4, 5, 6])` |
| fail_compilation/reg6769.d(27): while evaluating: `static assert(reg6769a([0, 1, 2, 3, 4, 5, 6]) == 1)` |
| fail_compilation/reg6769.d(20): Error: reinterpreting cast from `int[7]` to `int[]*` is not supported in CTFE |
| fail_compilation/reg6769.d(28): called from here: `reg6769b([0, 1, 2, 3, 4, 5, 6])` |
| fail_compilation/reg6769.d(28): while evaluating: `static assert(reg6769b([0, 1, 2, 3, 4, 5, 6]) == 1)` |
| --- |
| */ |
| int reg6769a(int[] a) |
| { |
| int[7]* b = cast(int[7]*)&a; |
| return (*b)[1]; |
| } |
| |
| int reg6769b(int[7] a) |
| { |
| int[]* b = cast(int[]*)&a; |
| return (*b)[1]; |
| } |
| |
| void main() |
| { |
| // Both should never succeed, run-time would raise a SEGV. |
| static assert(reg6769a([0,1,2,3,4,5,6]) == 1); |
| static assert(reg6769b([0,1,2,3,4,5,6]) == 1); |
| } |