From 0d1ce1fb5fb4bcfff0dc24b567220af6ec6b93ab Mon Sep 17 00:00:00 2001 From: kristopher tate Date: Sun, 20 Jan 2019 16:57:13 +0900 Subject: [PATCH 1/2] src/analyze.cpp: return type entry for `ZigTypeIdPointer` if it points to `ZigTypeIdOpaque` ref: ziglang/zig#1883 --- src/analyze.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/analyze.cpp b/src/analyze.cpp index 00eb38de9e..15370983fc 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -5751,6 +5751,13 @@ void eval_min_max_value(CodeGen *g, ZigType *type_entry, ConstExprValue *const_v } void render_const_val_ptr(CodeGen *g, Buf *buf, ConstExprValue *const_val, ZigType *type_entry) { + assert(type_entry->id == ZigTypeIdPointer); + + if (type_entry->data.pointer.child_type->id == ZigTypeIdOpaque) { + buf_append_buf(buf, &type_entry->name); + return; + } + switch (const_val->data.x_ptr.special) { case ConstPtrSpecialInvalid: zig_unreachable(); From 1357bc7430e48137b249c6930b4f03c48efa0f33 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 20 Jan 2019 14:09:17 -0500 Subject: [PATCH 2/2] add test case for previous commit --- test/compile_errors.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/compile_errors.zig b/test/compile_errors.zig index 880a96a322..d9603ba4ff 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -1,6 +1,15 @@ const tests = @import("tests.zig"); pub fn addCases(cases: *tests.CompileErrorContext) void { + cases.add( + "compile log a pointer to an opaque value", + \\export fn entry() void { + \\ @compileLog(@ptrCast(*const c_void, &entry)); + \\} + , + ".tmp_source.zig:2:5: error: found compile log statement", + ); + cases.add( "duplicate boolean switch value", \\comptime {