From d6128fd27aa504957bc154074414946d001d6412 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Thu, 23 Apr 2026 23:23:49 +0300 Subject: [PATCH] compress: fix veb: unable to compile with clang (fixes #26936) --- vlib/compress/zstd/zstd.c.v | 12 ++++++------ .../gen/c/testdata/zstd_opaque_ctx_tags.c.must_have | 4 ++++ vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.vv | 12 ++++++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.c.must_have create mode 100644 vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.vv diff --git a/vlib/compress/zstd/zstd.c.v b/vlib/compress/zstd/zstd.c.v index 4ea2ffa93..86c713be1 100644 --- a/vlib/compress/zstd/zstd.c.v +++ b/vlib/compress/zstd/zstd.c.v @@ -28,10 +28,10 @@ fn C.ZSTD_getErrorName(usize) charptr fn C.ZSTD_minCLevel() i32 fn C.ZSTD_maxCLevel() i32 fn C.ZSTD_defaultCLevel() i32 -fn C.ZSTD_createCCtx() &C.ZSTD_CCtx +fn C.ZSTD_createCCtx() &C.ZSTD_CCtx_s fn C.ZSTD_freeCCtx(voidptr) usize fn C.ZSTD_compressCCtx(voidptr, voidptr, usize, voidptr, usize, i32) usize -fn C.ZSTD_createDCtx() &C.ZSTD_DCtx +fn C.ZSTD_createDCtx() &C.ZSTD_DCtx_s fn C.ZSTD_freeDCtx(voidptr) usize fn C.ZSTD_decompressDCtx(voidptr, voidptr, usize, voidptr, usize) usize @@ -455,7 +455,7 @@ pub fn decompress(data []u8, params DecompressParams) ![]u8 { pub struct CCtx { mut: - ctx &C.ZSTD_CCtx + ctx &C.ZSTD_CCtx_s } // new_cctx create a compression context. @@ -497,13 +497,13 @@ pub fn (mut c CCtx) free_cctx() usize { return C.ZSTD_freeCCtx(c.ctx) } -struct C.ZSTD_CCtx {} +struct C.ZSTD_CCtx_s {} -struct C.ZSTD_DCtx {} +struct C.ZSTD_DCtx_s {} pub struct DCtx { mut: - ctx &C.ZSTD_DCtx + ctx &C.ZSTD_DCtx_s } // new_dctx creates a decompression context. diff --git a/vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.c.must_have b/vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.c.must_have new file mode 100644 index 000000000..0145fc69f --- /dev/null +++ b/vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.c.must_have @@ -0,0 +1,4 @@ +struct ZSTD_CCtx_s* ctx; +struct ZSTD_DCtx_s* ctx; +struct ZSTD_CCtx_s* ctx = ZSTD_createCCtx(); +struct ZSTD_DCtx_s* ctx = ZSTD_createDCtx(); diff --git a/vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.vv b/vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.vv new file mode 100644 index 000000000..1be7b9803 --- /dev/null +++ b/vlib/v/gen/c/testdata/zstd_opaque_ctx_tags.vv @@ -0,0 +1,12 @@ +import compress.zstd + +fn main() { + mut cctx := zstd.new_cctx() or { panic(err) } + defer { + cctx.free_cctx() + } + mut dctx := zstd.new_dctx() or { panic(err) } + defer { + dctx.free_dctx() + } +} -- 2.39.5