mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Added -no-entry-point flag and relevant check.
This commit is contained in:
@@ -151,6 +151,7 @@ struct BuildContext {
|
|||||||
bool no_dynamic_literals;
|
bool no_dynamic_literals;
|
||||||
bool no_output_files;
|
bool no_output_files;
|
||||||
bool no_crt;
|
bool no_crt;
|
||||||
|
bool no_entry_point;
|
||||||
bool use_lld;
|
bool use_lld;
|
||||||
bool vet;
|
bool vet;
|
||||||
bool cross_compiling;
|
bool cross_compiling;
|
||||||
|
|||||||
+1
-1
@@ -4572,7 +4572,7 @@ void check_parsed_files(Checker *c) {
|
|||||||
|
|
||||||
|
|
||||||
TIME_SECTION("check entry point");
|
TIME_SECTION("check entry point");
|
||||||
if (build_context.build_mode == BuildMode_Executable) {
|
if (build_context.build_mode == BuildMode_Executable && !build_context.no_entry_point) {
|
||||||
Scope *s = c->info.init_scope;
|
Scope *s = c->info.init_scope;
|
||||||
GB_ASSERT(s != nullptr);
|
GB_ASSERT(s != nullptr);
|
||||||
GB_ASSERT(s->flags&ScopeFlag_Init);
|
GB_ASSERT(s->flags&ScopeFlag_Init);
|
||||||
|
|||||||
@@ -581,6 +581,7 @@ enum BuildFlagKind {
|
|||||||
BuildFlag_NoBoundsCheck,
|
BuildFlag_NoBoundsCheck,
|
||||||
BuildFlag_NoDynamicLiterals,
|
BuildFlag_NoDynamicLiterals,
|
||||||
BuildFlag_NoCRT,
|
BuildFlag_NoCRT,
|
||||||
|
BuildFlag_NoEntryPoint,
|
||||||
BuildFlag_UseLLD,
|
BuildFlag_UseLLD,
|
||||||
BuildFlag_Vet,
|
BuildFlag_Vet,
|
||||||
BuildFlag_UseLLVMApi,
|
BuildFlag_UseLLVMApi,
|
||||||
@@ -591,6 +592,7 @@ enum BuildFlagKind {
|
|||||||
BuildFlag_DisallowDo,
|
BuildFlag_DisallowDo,
|
||||||
BuildFlag_DefaultToNilAllocator,
|
BuildFlag_DefaultToNilAllocator,
|
||||||
|
|
||||||
|
|
||||||
BuildFlag_Compact,
|
BuildFlag_Compact,
|
||||||
BuildFlag_GlobalDefinitions,
|
BuildFlag_GlobalDefinitions,
|
||||||
BuildFlag_GoToDefinitions,
|
BuildFlag_GoToDefinitions,
|
||||||
@@ -680,6 +682,7 @@ bool parse_build_flags(Array<String> args) {
|
|||||||
add_flag(&build_flags, BuildFlag_DisableAssert, str_lit("disable-assert"), BuildFlagParam_None);
|
add_flag(&build_flags, BuildFlag_DisableAssert, str_lit("disable-assert"), BuildFlagParam_None);
|
||||||
add_flag(&build_flags, BuildFlag_NoBoundsCheck, str_lit("no-bounds-check"), BuildFlagParam_None);
|
add_flag(&build_flags, BuildFlag_NoBoundsCheck, str_lit("no-bounds-check"), BuildFlagParam_None);
|
||||||
add_flag(&build_flags, BuildFlag_NoDynamicLiterals, str_lit("no-dynamic-literals"), BuildFlagParam_None);
|
add_flag(&build_flags, BuildFlag_NoDynamicLiterals, str_lit("no-dynamic-literals"), BuildFlagParam_None);
|
||||||
|
add_flag(&build_flags, BuildFlag_NoEntryPoint, str_lit("no-entry-point"), BuildFlagParam_None);
|
||||||
add_flag(&build_flags, BuildFlag_NoCRT, str_lit("no-crt"), BuildFlagParam_None);
|
add_flag(&build_flags, BuildFlag_NoCRT, str_lit("no-crt"), BuildFlagParam_None);
|
||||||
add_flag(&build_flags, BuildFlag_UseLLD, str_lit("lld"), BuildFlagParam_None);
|
add_flag(&build_flags, BuildFlag_UseLLD, str_lit("lld"), BuildFlagParam_None);
|
||||||
add_flag(&build_flags, BuildFlag_Vet, str_lit("vet"), BuildFlagParam_None);
|
add_flag(&build_flags, BuildFlag_Vet, str_lit("vet"), BuildFlagParam_None);
|
||||||
@@ -1095,6 +1098,10 @@ bool parse_build_flags(Array<String> args) {
|
|||||||
build_context.no_crt = true;
|
build_context.no_crt = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BuildFlag_NoEntryPoint:
|
||||||
|
build_context.no_entry_point = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case BuildFlag_UseLLD:
|
case BuildFlag_UseLLD:
|
||||||
build_context.use_lld = true;
|
build_context.use_lld = true;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user