aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gdc.test/compilable/test9613.d
blob: c49c293282f5377f100879d0d694de459d205897 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// PREMUTE_ARGS:
struct S9613
{
    int f(
        const(byte) a = const(byte).init,
        immutable(byte) b = immutable(byte).init,
        shared(byte) c = shared(byte).init,
        inout(byte) d = inout(byte).init,
    ) inout
    {
        assert(a == byte.init);
        assert(b == byte.init);
        assert(c == byte.init);
        assert(d == byte.init);
        static assert(const(byte).init == byte.init);
        static assert(immutable(byte).init == byte.init);
        static assert(shared(byte).init == byte.init);
        static assert(inout(byte).init == byte.init);
        return 0;
    }
}

void main()
{
    static assert(const(byte).init == byte.init);
    static assert(immutable(byte).init == byte.init);
    static assert(shared(byte).init == byte.init);
    static assert(const(byte).init.sizeof == byte.sizeof);
    static assert(const(byte[2]).init[0] == byte.init);
    enum s = S9613();
    enum v = s.f();
}