From 305c56dbf76982fbd651db4fc3109203cb17e0e2 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Wed, 12 Feb 2025 01:45:00 +0200 Subject: [PATCH] cgen: fix #preinclude, add test case for #postinclude too --- vlib/v/gen/c/cgen.v | 1 + vlib/v/gen/c/testdata/postinclude_example.out | 1 + vlib/v/gen/c/testdata/postinclude_example.vv | 10 ++++++++++ vlib/v/gen/c/testdata/postinclude_header.h | 7 +++++++ 4 files changed, 19 insertions(+) create mode 100644 vlib/v/gen/c/testdata/postinclude_example.out create mode 100644 vlib/v/gen/c/testdata/postinclude_example.vv create mode 100644 vlib/v/gen/c/testdata/postinclude_header.h diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index 47588306d83a25..00fba2b44abb9c 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -570,6 +570,7 @@ pub fn gen(files []&ast.File, mut table ast.Table, pref_ &pref.Preferences) GenO } b.write_string2('\n// V comptime_definitions:\n', g.comptime_definitions.str()) b.write_string2('\n// V typedefs:\n', g.typedefs.str()) + b.write_string2('\n // V preincludes:\n', g.preincludes.str()) b.write_string2('\n// V cheaders:', g.cheaders.str()) if g.pcs_declarations.len > 0 { b.write_string2('\n// V profile counters:\n', g.pcs_declarations.str()) diff --git a/vlib/v/gen/c/testdata/postinclude_example.out b/vlib/v/gen/c/testdata/postinclude_example.out new file mode 100644 index 00000000000000..717b01a59c4b32 --- /dev/null +++ b/vlib/v/gen/c/testdata/postinclude_example.out @@ -0,0 +1 @@ +Hi from V, p: 42 diff --git a/vlib/v/gen/c/testdata/postinclude_example.vv b/vlib/v/gen/c/testdata/postinclude_example.vv new file mode 100644 index 00000000000000..586f58f6dee7c4 --- /dev/null +++ b/vlib/v/gen/c/testdata/postinclude_example.vv @@ -0,0 +1,10 @@ +module no_main + +#postinclude "@VEXEROOT/vlib/v/gen/c/testdata/postinclude_header.h" + +@[markused] +pub fn f(p int) int { + assert p == 42 + C.printf(c'Hi from V, p: %d\n', p) + return 987 +} diff --git a/vlib/v/gen/c/testdata/postinclude_header.h b/vlib/v/gen/c/testdata/postinclude_header.h new file mode 100644 index 00000000000000..9f5f19da6e5574 --- /dev/null +++ b/vlib/v/gen/c/testdata/postinclude_header.h @@ -0,0 +1,7 @@ +#include + +int main( void ) { + int res = no_main__f(42); + assert(res == 987); + return 0; +}