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_calls map[string]bool // resolved name to call on comptime
comptime_syms map[Type]bool // resolved syms (generic) comptime_syms map[Type]bool // resolved syms (generic)
// //
uses_attr_noreturn bool // @[noreturn] used_attr_noreturn bool // @[noreturn]
uses_attr_hidden bool // @[hidden] used_attr_hidden bool // @[hidden]
uses_attr_weak bool // @[weak] used_attr_weak bool // @[weak]
} }
@[unsafe] @[unsafe]

View file

@ -991,13 +991,13 @@ pub fn (mut g Gen) init() {
} else { } else {
g.cheaders.writeln(c_headers) 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) 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) 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_noreturn_attr)
g.cheaders.writeln(c_common_unreachable_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 w.used_globals[ckey] = true
gfield := w.all_globals[ckey] or { return } 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.used_attr_weak = w.table.used_features.used_attr_weak || gfield.is_weak
w.table.used_features.uses_attr_hidden = w.table.used_features.uses_attr_hidden w.table.used_features.used_attr_hidden = w.table.used_features.used_attr_hidden
|| gfield.is_hidden || gfield.is_hidden || gfield.is_hidden
w.expr(gfield.expr) w.expr(gfield.expr)
if !gfield.has_expr { if !gfield.has_expr {
w.mark_by_type(gfield.typ) 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.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.used_attr_weak = w.table.used_features.used_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_noreturn = w.table.used_features.used_attr_noreturn
|| node.is_noreturn || node.is_noreturn
if node.language == .c { if node.language == .c {
w.mark_fn_as_used(node.fkey()) w.mark_fn_as_used(node.fkey())