From d30227b8508c61e472d9014ec1e32ed5bb22136b Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Tue, 14 Apr 2026 12:45:34 +0300 Subject: [PATCH] cgen: Building with MSVC Results in Error with Mutable Static Strings (fixes #25541) --- .../mut_static_string_runtime_init.c.must_have | 4 ++++ .../c/testdata/mut_static_string_runtime_init.out | 2 ++ .../c/testdata/mut_static_string_runtime_init.vv | 13 +++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 vlib/v/gen/c/testdata/mut_static_string_runtime_init.c.must_have create mode 100644 vlib/v/gen/c/testdata/mut_static_string_runtime_init.out create mode 100644 vlib/v/gen/c/testdata/mut_static_string_runtime_init.vv diff --git a/vlib/v/gen/c/testdata/mut_static_string_runtime_init.c.must_have b/vlib/v/gen/c/testdata/mut_static_string_runtime_init.c.must_have new file mode 100644 index 000000000..f6616b47d --- /dev/null +++ b/vlib/v/gen/c/testdata/mut_static_string_runtime_init.c.must_have @@ -0,0 +1,4 @@ +static string stored_text; +static bool _vstatic_init_ +if (!_vstatic_init_ +stored_text = _S(" "); diff --git a/vlib/v/gen/c/testdata/mut_static_string_runtime_init.out b/vlib/v/gen/c/testdata/mut_static_string_runtime_init.out new file mode 100644 index 000000000..0a72fced9 --- /dev/null +++ b/vlib/v/gen/c/testdata/mut_static_string_runtime_init.out @@ -0,0 +1,2 @@ +MyText +MyText diff --git a/vlib/v/gen/c/testdata/mut_static_string_runtime_init.vv b/vlib/v/gen/c/testdata/mut_static_string_runtime_init.vv new file mode 100644 index 000000000..0dd3fd6c2 --- /dev/null +++ b/vlib/v/gen/c/testdata/mut_static_string_runtime_init.vv @@ -0,0 +1,13 @@ +// vtest vflags: -gc none + +@[unsafe] +fn set_get_static_text(text string) string { + mut static stored_text := ' ' + if text != '' { + stored_text = text + } + return stored_text +} + +println(unsafe { set_get_static_text('MyText') }) +println(unsafe { set_get_static_text('') }) -- 2.39.5