mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-13 22:03:42 +00:00
-disable-init-fini
This commit is contained in:
@@ -608,6 +608,7 @@ struct BuildContext {
|
||||
|
||||
bool bedrock;
|
||||
bool disable_non_constant_globals;
|
||||
bool disable_init_fini;
|
||||
|
||||
|
||||
u32 cmd_doc_flags;
|
||||
|
||||
@@ -1334,6 +1334,10 @@ gb_internal void check_proc_decl(CheckerContext *ctx, Entity *e, DeclInfo *d) {
|
||||
e->flags |= EntityFlag_Fini;
|
||||
}
|
||||
|
||||
if (build_context.disable_init_fini && (e->flags & (EntityFlag_Init|EntityFlag_Fini))) {
|
||||
error(e->token, "@(init) and @(fini) have been disabled with '-disable-init-fini'");
|
||||
}
|
||||
|
||||
if (ac.set_cold) {
|
||||
e->flags |= EntityFlag_Cold;
|
||||
}
|
||||
|
||||
@@ -396,6 +396,7 @@ enum BuildFlagKind {
|
||||
|
||||
BuildFlag_Bedrock,
|
||||
BuildFlag_DisableNonConstantGlobals,
|
||||
BuildFlag_DisableInitFini,
|
||||
|
||||
// internal use only
|
||||
BuildFlag_InternalFastISel,
|
||||
@@ -632,6 +633,7 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
|
||||
add_flag(&build_flags, BuildFlag_Bedrock, str_lit("bedrock"), BuildFlagParam_None, Command__does_check);
|
||||
add_flag(&build_flags, BuildFlag_DisableNonConstantGlobals, str_lit("disable-non-constant-globals"), BuildFlagParam_None, Command__does_check);
|
||||
add_flag(&build_flags, BuildFlag_DisableInitFini, str_lit("disable-init-fini"), BuildFlagParam_None, Command__does_check);
|
||||
|
||||
add_flag(&build_flags, BuildFlag_InternalFastISel, str_lit("internal-fast-isel"), BuildFlagParam_None, Command_all);
|
||||
add_flag(&build_flags, BuildFlag_InternalIgnoreLazy, str_lit("internal-ignore-lazy"), BuildFlagParam_None, Command_all);
|
||||
@@ -1609,11 +1611,15 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
build_context.bedrock = true;
|
||||
build_context.no_rtti = true;
|
||||
build_context.disable_non_constant_globals = true;
|
||||
build_context.disable_init_fini = true;
|
||||
break;
|
||||
|
||||
case BuildFlag_DisableNonConstantGlobals:
|
||||
build_context.disable_non_constant_globals = true;
|
||||
break;
|
||||
case BuildFlag_DisableInitFini:
|
||||
build_context.disable_init_fini = true;
|
||||
break;
|
||||
|
||||
case BuildFlag_InternalFastISel:
|
||||
build_context.fast_isel = true;
|
||||
|
||||
Reference in New Issue
Block a user