From 1142147742d614892c23711f068b83cc5d30b3b0 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Mon, 8 Jun 2026 23:21:24 +0300 Subject: [PATCH] ci: fix coutput .c.must_have tests on musl/windows-tcc - heap_struct_init_order: force -gc boehm so the volatile keepalive temp is emitted on platforms where boehm is not the default GC (musl, msvc) - skip boehm_keepalive_c_union_tag on windows-tcc, where deep GC scope pins (and their keepalive helpers) are intentionally not generated (the bundled Windows tcc libgc archive lacks GC_remove_roots) --- vlib/v/gen/c/coutput_test.v | 6 ++++++ vlib/v/gen/c/testdata/heap_struct_init_order.vv | 1 + 2 files changed, 7 insertions(+) diff --git a/vlib/v/gen/c/coutput_test.v b/vlib/v/gen/c/coutput_test.v index 45b7c460d..2716d9d3a 100644 --- a/vlib/v/gen/c/coutput_test.v +++ b/vlib/v/gen/c/coutput_test.v @@ -816,6 +816,12 @@ fn should_skip(relpath string) bool { eprintln('> skipping ${relpath} on windows') return true } + $if tinyc { + if relpath.ends_with('boehm_keepalive_c_union_tag.vv') { + eprintln('> skipping ${relpath} on windows-tcc, since deep GC scope pins (and thus their keepalive helpers) are intentionally not emitted there: the bundled Windows tcc libgc archive lacks GC_remove_roots()') + return true + } + } $if !msvc { if relpath.contains('_msvc_windows.vv') { eprintln('> skipping ${relpath} on !msvc') diff --git a/vlib/v/gen/c/testdata/heap_struct_init_order.vv b/vlib/v/gen/c/testdata/heap_struct_init_order.vv index 18e02040b..3fb2ff273 100644 --- a/vlib/v/gen/c/testdata/heap_struct_init_order.vv +++ b/vlib/v/gen/c/testdata/heap_struct_init_order.vv @@ -1,3 +1,4 @@ +// vtest vflags: -gc boehm const issue_27329_kind_false = 0 const issue_27329_kind_true = 1 const issue_27329_kind_len = 2 -- 2.39.5