diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-08-18 10:49:09 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-08-19 16:45:16 -0700 |
| commit | 437311756d88984d9bf3057d9cd93986c15434fa (patch) | |
| tree | 9845ed7d4ad76a191610b885061c26050bd7c349 /src/codegen/llvm.zig | |
| parent | 35f62bc7aeca5c84f4ddda5736ce902018d23964 (diff) | |
| download | zig-437311756d88984d9bf3057d9cd93986c15434fa.tar.gz zig-437311756d88984d9bf3057d9cd93986c15434fa.zip | |
LLVM: add DLL export attribute
This was present in stage1 but missing from self-hosted.
Diffstat (limited to 'src/codegen/llvm.zig')
| -rw-r--r-- | src/codegen/llvm.zig | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 0898c8fe87..d50b463606 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -1103,6 +1103,7 @@ pub const Object = struct { } llvm_global.setUnnamedAddr(.False); llvm_global.setLinkage(.External); + if (module.wantDllExports()) llvm_global.setDLLStorageClass(.Default); if (self.di_map.get(decl)) |di_node| { if (try decl.isFunction()) { const di_func = @ptrCast(*llvm.DISubprogram, di_node); @@ -1128,6 +1129,7 @@ pub const Object = struct { const exp_name = exports[0].options.name; llvm_global.setValueName2(exp_name.ptr, exp_name.len); llvm_global.setUnnamedAddr(.False); + if (module.wantDllExports()) llvm_global.setDLLStorageClass(.DLLExport); if (self.di_map.get(decl)) |di_node| { if (try decl.isFunction()) { const di_func = @ptrCast(*llvm.DISubprogram, di_node); @@ -1187,6 +1189,7 @@ pub const Object = struct { defer module.gpa.free(fqn); llvm_global.setValueName2(fqn.ptr, fqn.len); llvm_global.setLinkage(.Internal); + if (module.wantDllExports()) llvm_global.setDLLStorageClass(.Default); llvm_global.setUnnamedAddr(.True); if (decl.val.castTag(.variable)) |variable| { const single_threaded = module.comp.bin_file.options.single_threaded; |
