/*
TEST_OUTPUT:
---
fail_compilation/fail11510.d(25): Error: reinterpretation through overlapped field y is not allowed in CTFE
fail_compilation/fail11510.d(29):        called from here: test11510a()
fail_compilation/fail11510.d(36): Error: reinterpretation through overlapped field y is not allowed in CTFE
fail_compilation/fail11510.d(40):        called from here: test11510b()
---
*/

struct S11510
{
    union
    {
        size_t x;
        int* y; // pointer field
    }
}

bool test11510a()
{
    S11510 s;

    s.y = [1,2,3].ptr;
    auto x = s.x;   // reinterpretation

    return true;
}
enum a = test11510a();

bool test11510b()
{
    S11510 s;

    s.x = 10;
    auto y = s.y;   // reinterpretation

    return true;
}
enum b = test11510b();
