aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBogdan Romanyuk <65823030+wrongnull@users.noreply.github.com>2023-10-17 23:05:55 +0300
committerGitHub <noreply@github.com>2023-10-17 20:05:55 +0000
commitad168db727a1baec8b8efe0bb4418d0df7e84769 (patch)
tree4e1eea7d3dd70e18201d4111fa3bffed61a7356a /test
parent5c8912d7a445cbafba92913bdd364f9f02d18d87 (diff)
downloadzig-ad168db727a1baec8b8efe0bb4418d0df7e84769.tar.gz
zig-ad168db727a1baec8b8efe0bb4418d0df7e84769.zip
Sema: disallow `@intFromPtr` for comptime-only types
Diffstat (limited to 'test')
-rw-r--r--test/behavior/pointers.zig16
-rw-r--r--test/cases/compile_errors/@intFromPtr_with_bad_type.zig11
2 files changed, 11 insertions, 16 deletions
diff --git a/test/behavior/pointers.zig b/test/behavior/pointers.zig
index 0a781cc057..52e3e68c3f 100644
--- a/test/behavior/pointers.zig
+++ b/test/behavior/pointers.zig
@@ -499,22 +499,6 @@ test "ptrCast comptime known slice to C pointer" {
try std.testing.expectEqualStrings(s, std.mem.sliceTo(p, 0));
}
-test "intFromPtr on a generic function" {
- if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
-
- const S = struct {
- fn generic(i: anytype) @TypeOf(i) {
- return i;
- }
- fn doTheTest(a: anytype) !void {
- try expect(@intFromPtr(a) != 0);
- }
- };
- try S.doTheTest(&S.generic);
-}
-
test "pointer alignment and element type include call expression" {
const S = struct {
fn T() type {
diff --git a/test/cases/compile_errors/@intFromPtr_with_bad_type.zig b/test/cases/compile_errors/@intFromPtr_with_bad_type.zig
new file mode 100644
index 0000000000..2899d08348
--- /dev/null
+++ b/test/cases/compile_errors/@intFromPtr_with_bad_type.zig
@@ -0,0 +1,11 @@
+const x = 42;
+const y = @intFromPtr(&x);
+pub export fn entry() void {
+ _ = y;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:23: error: comptime-only type 'comptime_int' has no pointer address