aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/reference_to_const_data.zig
blob: ae8dc121c6e6eea4c12594acccfc64af51d3c7af (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
35
36
37
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;
    _ = &ptr;
}
export fn baz() void {
    var ptr = &true;
    ptr.* = false;
    _ = &ptr;
}
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;
    _ = &x;
}

// error
// backend=stage2
// target=native
//
// :3:8: error: cannot assign to constant
// :7:8: error: cannot assign to constant
// :12:8: error: cannot assign to constant
// :21:8: error: cannot assign to constant
// :25:6: error: cannot assign to constant