This commit is contained in:
Felipe Pena 2025-09-02 08:42:19 -03:00
parent 10ecbd15ec
commit 797de9bee1
3 changed files with 11 additions and 11 deletions

View file

@ -39,9 +39,9 @@ pub mut:
comptime_calls map[string]bool // resolved name to call on comptime
comptime_syms map[Type]bool // resolved syms (generic)
//
uses_attr_noreturn bool // @[noreturn]
uses_attr_hidden bool // @[hidden]
uses_attr_weak bool // @[weak]
used_attr_noreturn bool // @[noreturn]
used_attr_hidden bool // @[hidden]
used_attr_weak bool // @[weak]
}
@[unsafe]

View file

@ -991,13 +991,13 @@ pub fn (mut g Gen) init() {
} else {
g.cheaders.writeln(c_headers)
}
if !g.pref.skip_unused || g.table.used_features.uses_attr_weak {
if !g.pref.skip_unused || g.table.used_features.used_attr_weak {
g.cheaders.writeln(c_common_weak_attr)
}
if !g.pref.skip_unused || g.table.used_features.uses_attr_hidden {
if !g.pref.skip_unused || g.table.used_features.used_attr_hidden {
g.cheaders.writeln(c_common_hidden_attr)
}
if !g.pref.skip_unused || g.table.used_features.uses_attr_noreturn {
if !g.pref.skip_unused || g.table.used_features.used_attr_noreturn {
g.cheaders.writeln(c_common_noreturn_attr)
g.cheaders.writeln(c_common_unreachable_attr)
}

View file

@ -142,9 +142,9 @@ pub fn (mut w Walker) mark_global_as_used(ckey string) {
}
w.used_globals[ckey] = true
gfield := w.all_globals[ckey] or { return }
w.table.used_features.uses_attr_weak = w.table.used_features.uses_attr_weak || gfield.is_weak
w.table.used_features.uses_attr_hidden = w.table.used_features.uses_attr_hidden
|| gfield.is_hidden
w.table.used_features.used_attr_weak = w.table.used_features.used_attr_weak || gfield.is_weak
w.table.used_features.used_attr_hidden = w.table.used_features.used_attr_hidden
|| gfield.is_hidden || gfield.is_hidden
w.expr(gfield.expr)
if !gfield.has_expr {
w.mark_by_type(gfield.typ)
@ -895,8 +895,8 @@ pub fn (mut w Walker) fn_decl(mut node ast.FnDecl) {
w.is_builtin_mod = last_is_builtin_mod
}
}
w.table.used_features.uses_attr_weak = w.table.used_features.uses_attr_weak || node.is_weak
w.table.used_features.uses_attr_noreturn = w.table.used_features.uses_attr_noreturn
w.table.used_features.used_attr_weak = w.table.used_features.used_attr_weak || node.is_weak
w.table.used_features.used_attr_noreturn = w.table.used_features.used_attr_noreturn
|| node.is_noreturn
if node.language == .c {
w.mark_fn_as_used(node.fkey())