aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/reference_to_const_data.zig
blob: e773cdb4a08827daa6585c9dfb78aabdd1ee0115 (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
33
34
export fn foo() void {
    var ptr = &[_]u8{ 0, 0, 0, 0 };
    ptr[1] = 2;
}
export fn bar() void {
    var ptr = &@as(u32, 2);
    ptr.* = 2;
}
export fn baz() void {
    var ptr = &true;
    ptr.* = false;
}
export fn qux() void {
    const S = struct {
        x: usize,
        y: usize,
    };
    var ptr = &S{ .x = 1, .y = 2 };
    ptr.x = 2;
}
export fn quux() void {
    var x = &@returnAddress();
    x.* = 6;
}

// error
// backend=stage2
// target=native
//
// :3:8: error: cannot assign to constant
// :7:8: error: cannot assign to constant
// :11:8: error: cannot assign to constant
// :19:8: error: cannot assign to constant
// :23:6: error: cannot assign to constant