aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/struct_contains_null_ptr_itself.zig
blob: 15c14cc3d22967e858fa1547875fcaede21162d6 (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
const std = @import("std");
const expect = std.testing.expect;
const builtin = @import("builtin");

test "struct contains null pointer which contains original struct" {
    if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
    if (builtin.zig_backend == .stage2_spirv) return error.SkipZigTest;

    var x: ?*NodeLineComment = null;
    _ = &x;
    try expect(x == null);
}

pub const Node = struct {
    id: Id,
    comment: ?*NodeLineComment,

    pub const Id = enum {
        Root,
        LineComment,
    };
};

pub const NodeLineComment = struct {
    base: Node,
};