aboutsummaryrefslogtreecommitdiff
path: root/src/checker.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-01-12 20:07:17 +0000
committergingerBill <bill@gingerbill.org>2022-01-12 20:07:17 +0000
commitfb0a3ab7c14d4bc3b821cef723ec6ea3e956c956 (patch)
tree265afc90c7e7ae4e9b77d65ea1680e55f6bb9e6b /src/checker.cpp
parent5ec93677a04f17f38117f0cf301d9a72036a04e7 (diff)
Correct linkage for entry point procedures on Windows
Diffstat (limited to 'src/checker.cpp')
-rw-r--r--src/checker.cpp8
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");
+ }
}
}
}