diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2024-08-13 14:07:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-13 14:07:51 +0100 |
| commit | 2584c6bcd7f2dd5c0f399b8a840e30a39c2c0043 (patch) | |
| tree | 5f2fcb280dbcba5dcc30d9012a82871e29f7cfff /src/check_decl.cpp | |
| parent | 66d3082a9a6bd30be7de115b90af258942510dfb (diff) | |
| parent | 9eb7186cda2081c7fadbc0d196346b4e57f5e4c1 (diff) | |
Merge pull request #4069 from zen3ger/1738-aliased-procedure-resolution
Fix alias handling of procedures
Diffstat (limited to 'src/check_decl.cpp')
| -rw-r--r-- | src/check_decl.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/check_decl.cpp b/src/check_decl.cpp index a1436fe03..1425aafa8 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -180,6 +180,8 @@ gb_internal void override_entity_in_scope(Entity *original_entity, Entity *new_e original_entity->flags |= EntityFlag_Overridden; original_entity->type = new_entity->type; + original_entity->kind = new_entity->kind; + original_entity->decl_info = new_entity->decl_info; original_entity->aliased_of = new_entity; original_entity->identifier.store(new_entity->identifier); @@ -193,7 +195,7 @@ gb_internal void override_entity_in_scope(Entity *original_entity, Entity *new_e // This is most likely NEVER required, but it does not at all hurt to keep isize offset = cast(u8 *)&original_entity->Dummy.start - cast(u8 *)original_entity; isize size = gb_size_of(*original_entity) - offset; - gb_memmove(cast(u8 *)original_entity, cast(u8 *)new_entity, size); + gb_memmove(cast(u8 *)original_entity + offset, cast(u8 *)new_entity + offset, size); } gb_internal bool check_override_as_type_due_to_aliasing(CheckerContext *ctx, Entity *e, Entity *entity, Ast *init, Type *named_type) { |