Browse Source

Fix name mangling for `@(private)` entities

gingerBill 5 years ago
parent
commit
602a651613
2 changed files with 5 additions and 0 deletions
  1. 3 0
      src/ir.cpp
  2. 2 0
      src/llvm_backend.cpp

+ 3 - 0
src/ir.cpp

@@ -6212,6 +6212,9 @@ String ir_mangle_name(irGen *s, Entity *e) {
 
 	isize max_len = pkgn.len + 1 + name.len + 1;
 	bool require_suffix_id = is_type_polymorphic(e->type, true);
+	if (e->flags & EntityFlag_NotExported) {
+		require_suffix_id = true;
+	}
 	if (require_suffix_id) {
 		max_len += 21;
 	}

+ 2 - 0
src/llvm_backend.cpp

@@ -516,6 +516,8 @@ String lb_mangle_name(lbModule *m, Entity *e) {
 		require_suffix_id = true;
 	} else if (is_blank_ident(e->token)) {
 		require_suffix_id = true;
+	}if (e->flags & EntityFlag_NotExported) {
+		require_suffix_id = true;
 	}
 
 	if (require_suffix_id) {