Просмотр исходного кода

Merge pull request #4800 from laytan/make-use-separate-modules-corrected-linkage-hidden

make corrected linkage with -use-separate-modules apply hidden visibility
gingerBill 7 месяцев назад
Родитель
Сommit
a9cd70a913
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      src/llvm_backend.cpp

+ 6 - 0
src/llvm_backend.cpp

@@ -169,11 +169,17 @@ gb_internal void lb_correct_entity_linkage(lbGenerator *gen) {
 			other_global = LLVMGetNamedGlobal(ec.other_module->mod, ec.cname);
 			if (other_global) {
 				LLVMSetLinkage(other_global, LLVMWeakAnyLinkage);
+				if (!ec.e->Variable.is_export) {
+					LLVMSetVisibility(other_global, LLVMHiddenVisibility);
+				}
 			}
 		} else if (ec.e->kind == Entity_Procedure) {
 			other_global = LLVMGetNamedFunction(ec.other_module->mod, ec.cname);
 			if (other_global) {
 				LLVMSetLinkage(other_global, LLVMWeakAnyLinkage);
+				if (!ec.e->Procedure.is_export) {
+					LLVMSetVisibility(other_global, LLVMHiddenVisibility);
+				}
 			}
 		}
 	}