diff options
| author | gingerBill <bill@gingerbill.org> | 2022-01-12 20:07:17 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-01-12 20:07:17 +0000 |
| commit | fb0a3ab7c14d4bc3b821cef723ec6ea3e956c956 (patch) | |
| tree | 265afc90c7e7ae4e9b77d65ea1680e55f6bb9e6b /src/checker.cpp | |
| parent | 5ec93677a04f17f38117f0cf301d9a72036a04e7 (diff) | |
Correct linkage for entry point procedures on Windows
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index 42575f88d..f261c8f4a 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -2113,11 +2113,15 @@ void generate_minimum_dependency_set(Checker *c, Entity *start) { case Entity_Variable: if (e->Variable.is_export) { add_dependency_to_set(c, e); + } else if (e->flags & EntityFlag_Require) { + add_dependency_to_set(c, e); } break; case Entity_Procedure: if (e->Procedure.is_export) { add_dependency_to_set(c, e); + } else if (e->flags & EntityFlag_Require) { + add_dependency_to_set(c, e); } if (e->flags & EntityFlag_Init) { Type *t = base_type(e->type); @@ -5440,7 +5444,9 @@ void check_parsed_files(Checker *c) { Ast *node = nullptr; while (mpmc_dequeue(&c->info.intrinsics_entry_point_usage, &node)) { if (c->info.entry_point == nullptr && node != nullptr) { - warning(node, "usage of intrinsics.__entry_point will be a no-op"); + if (node->file()->pkg->kind != Package_Runtime) { + warning(node, "usage of intrinsics.__entry_point will be a no-op"); + } } } } |