mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-19 12:22:23 -07:00
Require @(init) and @(fini) to be proc "contextless" ()
This commit is contained in:
@@ -2675,6 +2675,10 @@ gb_internal void generate_minimum_dependency_set_internal(Checker *c, Entity *st
|
||||
is_init = false;
|
||||
}
|
||||
|
||||
if (t->Proc.calling_convention != ProcCC_Contextless) {
|
||||
error(e->token, "@(init) procedures must be declared as \"contextless\"");
|
||||
}
|
||||
|
||||
if ((e->scope->flags & (ScopeFlag_File|ScopeFlag_Pkg)) == 0) {
|
||||
error(e->token, "@(init) procedures must be declared at the file scope");
|
||||
is_init = false;
|
||||
@@ -2689,6 +2693,7 @@ gb_internal void generate_minimum_dependency_set_internal(Checker *c, Entity *st
|
||||
error(e->token, "An @(init) procedure must not use a blank identifier as its name");
|
||||
}
|
||||
|
||||
|
||||
if (is_init) {
|
||||
add_dependency_to_set(c, e);
|
||||
array_add(&c->info.init_procedures, e);
|
||||
@@ -2706,6 +2711,10 @@ gb_internal void generate_minimum_dependency_set_internal(Checker *c, Entity *st
|
||||
is_fini = false;
|
||||
}
|
||||
|
||||
if (t->Proc.calling_convention != ProcCC_Contextless) {
|
||||
error(e->token, "@(fini) procedures must be declared as \"contextless\"");
|
||||
}
|
||||
|
||||
if ((e->scope->flags & (ScopeFlag_File|ScopeFlag_Pkg)) == 0) {
|
||||
error(e->token, "@(fini) procedures must be declared at the file scope");
|
||||
is_fini = false;
|
||||
|
||||
Reference in New Issue
Block a user