aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-07-01 22:04:06 -0700
committerGitHub <noreply@github.com>2023-07-01 22:04:06 -0700
commitafc5edabe05d464f64388726238d46b400c3e159 (patch)
tree85a98a3171f4d6a03be96ada639224ca565193ec /src/codegen
parent309aacfc8993ff4ec5914a7ee2c487eabbe00998 (diff)
parenta1b583dc24cde495656b288de979714dfc15c4a2 (diff)
downloadzig-afc5edabe05d464f64388726238d46b400c3e159.tar.gz
zig-afc5edabe05d464f64388726238d46b400c3e159.zip
Merge pull request #16287 from Snektron/amdgpu-panic-fix
Some amdgcn fixes
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm.zig13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index d42195d7e9..24ff706711 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -2435,18 +2435,25 @@ pub const Object = struct {
.ty = ty.toType(),
.val = null_opt_usize.toValue(),
});
+ const llvm_wanted_addrspace = toLlvmAddressSpace(.generic, target);
+ const llvm_actual_addrspace = toLlvmGlobalAddressSpace(.generic, target);
const global = o.llvm_module.addGlobalInAddressSpace(
llvm_init.typeOf(),
"",
- toLlvmGlobalAddressSpace(.generic, target),
+ llvm_actual_addrspace,
);
global.setLinkage(.Internal);
global.setUnnamedAddr(.True);
global.setAlignment(ty.toType().abiAlignment(mod));
global.setInitializer(llvm_init);
- o.null_opt_addr = global;
- return global;
+ const addrspace_casted_global = if (llvm_wanted_addrspace != llvm_actual_addrspace)
+ global.constAddrSpaceCast(o.context.pointerType(llvm_wanted_addrspace))
+ else
+ global;
+
+ o.null_opt_addr = addrspace_casted_global;
+ return addrspace_casted_global;
}
/// If the llvm function does not exist, create it.