| ... | ... | @@ -2435,18 +2435,25 @@ pub const Object = struct { |
| 2435 | 2435 | .ty = ty.toType(), |
| 2436 | 2436 | .val = null_opt_usize.toValue(), |
| 2437 | 2437 | }); |
| 2438 | const llvm_wanted_addrspace = toLlvmAddressSpace(.generic, target); |
| 2439 | const llvm_actual_addrspace = toLlvmGlobalAddressSpace(.generic, target); |
| 2438 | 2440 | const global = o.llvm_module.addGlobalInAddressSpace( |
| 2439 | 2441 | llvm_init.typeOf(), |
| 2440 | 2442 | "", |
| 2441 | | toLlvmGlobalAddressSpace(.generic, target), |
| 2443 | llvm_actual_addrspace, |
| 2442 | 2444 | ); |
| 2443 | 2445 | global.setLinkage(.Internal); |
| 2444 | 2446 | global.setUnnamedAddr(.True); |
| 2445 | 2447 | global.setAlignment(ty.toType().abiAlignment(mod)); |
| 2446 | 2448 | global.setInitializer(llvm_init); |
| 2447 | 2449 | |
| 2448 | | o.null_opt_addr = global; |
| 2449 | | return global; |
| 2450 | const addrspace_casted_global = if (llvm_wanted_addrspace != llvm_actual_addrspace) |
| 2451 | global.constAddrSpaceCast(o.context.pointerType(llvm_wanted_addrspace)) |
| 2452 | else |
| 2453 | global; |
| 2454 | |
| 2455 | o.null_opt_addr = addrspace_casted_global; |
| 2456 | return addrspace_casted_global; |
| 2450 | 2457 | } |
| 2451 | 2458 | |
| 2452 | 2459 | /// If the llvm function does not exist, create it. |