From e89a6269e4ee586fde2aeb014ca77e4a12d22640 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Mon, 6 Jun 2022 12:29:46 +0300 Subject: [PATCH] checker: do not require fn main when building an object file --- vlib/v/checker/checker.v | 2 +- vlib/v/gen/c/cgen.v | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index c2869175b0..2a894b3a8c 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -368,7 +368,7 @@ pub fn (mut c Checker) check_files(ast_files []&ast.File) { if !has_main_mod_file { c.error('project must include a `main` module or be a shared library (compile with `v -shared`)', token.Pos{}) - } else if !has_main_fn { + } else if !has_main_fn && !c.pref.is_o { c.error('function `main` must be declared in the main module', token.Pos{}) } } diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index ae0a6cb85e..e8d177bd0e 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -5486,8 +5486,9 @@ fn (mut g Gen) enum_val(node ast.EnumVal) { // && g.inside_switch if g.pref.translated && node.typ.is_number() { // Mostly in translated code, when C enums are used as ints in switches - sym := g.table.sym(node.typ) - g.write('/* $node enum val is_number $node.mod styp=$styp sym=$sym*/_const_main__$node.val') + // sym := g.table.sym(node.typ) + // g.write('/* $node enum val is_number $node.mod styp=$styp sym=$sym*/_const_main__$node.val') + g.write('_const_main__$node.val') } else { g.write('${styp}__$node.val') }