behavior tests: correction of C pointer test

This test was also covering this behavior:

```zig
test "equality of pointers to comptime const" {
    const a: i32 = undefined;
    comptime assert(&a == &a);
}
```

This check belongs in its own behavior test which isolates this
behavior; not bundled along with a C pointer test.
This commit is contained in:
Andrew Kelley 2022-05-16 20:44:40 -07:00
parent 00f3d84f38
commit 95f5e17e49
2 changed files with 13 additions and 2 deletions

View File

@ -1110,3 +1110,10 @@ test "no dependency loop for alignment of self tagged union" {
};
try S.doTheTest();
}
test "equality of pointers to comptime const" {
if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
const a: i32 = undefined;
comptime assert(&a == &a);
}

View File

@ -214,7 +214,10 @@ test "allowzero pointer and slice" {
}
test "assign null directly to C pointer and test null equality" {
if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
var x: [*c]i32 = null;
try expect(x == null);
@ -238,7 +241,8 @@ test "assign null directly to C pointer and test null equality" {
@panic("fail");
}
const othery: i32 = undefined;
comptime try expect((y orelse &othery) == &othery);
const ptr_othery = &othery;
comptime try expect((y orelse ptr_othery) == ptr_othery);
var n: i32 = 1234;
var x1: [*c]i32 = &n;