From 6115db4820b4c34b5bec07ab72b5ab921a1dcfe2 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Wed, 9 Dec 2020 19:22:10 +0200 Subject: [PATCH] cgen: fix msvc CI failure on `static struct _name_table[] = {}`, by skipping static for now --- vlib/v/gen/cgen.v | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vlib/v/gen/cgen.v b/vlib/v/gen/cgen.v index d5fc3c5945..78b11e655f 100644 --- a/vlib/v/gen/cgen.v +++ b/vlib/v/gen/cgen.v @@ -5626,7 +5626,15 @@ fn (mut g Gen) interface_table() string { // generate an array of the interface methods for the structs using the interface // as well as case functions from the struct to the interface mut methods_struct := strings.new_builder(100) - methods_struct.writeln('static $methods_struct_name ${interface_name}_name_table[$inter_info.types.len] = {') + mut staticprefix := 'static' + if g.pref.ccompiler == 'msvc' { + // msvc can not process `static struct x[0] = {};` + // for now just skip adding `static`. + // TODO: generate a non empty _name_table in this case, + // a dummy element... + staticprefix = '' + } + methods_struct.writeln('$staticprefix $methods_struct_name ${interface_name}_name_table[$inter_info.types.len] = {') mut cast_functions := strings.new_builder(100) cast_functions.write('// Casting functions for interface "$interface_name"') mut methods_wrapper := strings.new_builder(100)