diff --git a/vlib/builtin/map.v b/vlib/builtin/map.v index 2ea56e3eea..600ccaf1df 100644 --- a/vlib/builtin/map.v +++ b/vlib/builtin/map.v @@ -88,7 +88,7 @@ mut: values &u8 = unsafe { nil } } -@[inline] +@[inline; markused] fn new_dense_array(key_bytes int, value_bytes int) DenseArray { cap := 8 return DenseArray{ @@ -103,18 +103,18 @@ fn new_dense_array(key_bytes int, value_bytes int) DenseArray { } } -@[inline] +@[inline; markused] fn (d &DenseArray) key(i int) voidptr { return unsafe { voidptr(d.keys + i * d.key_bytes) } } // for cgen -@[inline] +@[inline; markused] fn (d &DenseArray) value(i int) voidptr { return unsafe { voidptr(d.values + i * d.value_bytes) } } -@[inline] +@[inline; markused] fn (d &DenseArray) has_index(i int) bool { return d.deletes == 0 || unsafe { d.all_deleted[i] } == 0 } diff --git a/vlib/v/gen/c/fn.v b/vlib/v/gen/c/fn.v index a70a3cfd13..0f7522ed13 100644 --- a/vlib/v/gen/c/fn.v +++ b/vlib/v/gen/c/fn.v @@ -15,6 +15,11 @@ fn (mut g Gen) is_used_by_main(node ast.FnDecl) bool { } mut is_used_by_main := true if g.pref.skip_unused { + if node.is_markused { + // TODO for some reason markused walker doesn't set used_fns[key] true for + // [markused] fndecls + return true + } fkey := node.fkey() is_used_by_main = g.table.used_features.used_fns[fkey] $if trace_skip_unused_fns ? { diff --git a/vlib/v/markused/markused.v b/vlib/v/markused/markused.v index 26e85f1153..b587c47557 100644 --- a/vlib/v/markused/markused.v +++ b/vlib/v/markused/markused.v @@ -357,7 +357,8 @@ pub fn mark_used(mut table ast.Table, mut pref_ pref.Preferences, ast_files []&a pref: pref_ ) // println( all_fns.keys() ) - walker.mark_markused_fns() // tagged with `@[markused]` + + walker.mark_markused_fn_decls() // tagged with `@[markused]` walker.mark_markused_consts() // tagged with `@[markused]` walker.mark_markused_globals() // tagged with `@[markused]` diff --git a/vlib/v/markused/walker.v b/vlib/v/markused/walker.v index 208b9d4440..56f855865e 100644 --- a/vlib/v/markused/walker.v +++ b/vlib/v/markused/walker.v @@ -117,7 +117,7 @@ pub fn (mut w Walker) mark_exported_fns() { } } -pub fn (mut w Walker) mark_markused_fns() { +pub fn (mut w Walker) mark_markused_fn_decls() { for _, mut func in w.all_fns { if func.is_markused { $if trace_skip_unused_markused_fns ? {