diff options
Diffstat (limited to 'src/codegen/llvm.zig')
| -rw-r--r-- | src/codegen/llvm.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index a6ea6255e3..34203b9536 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -725,8 +725,12 @@ pub const Object = struct { try args.append(param); if (param_ty.isPtrAtRuntime()) { - // TODO noalias attribute const ptr_info = param_ty.ptrInfo().data; + if (math.cast(u5, it.zig_index - 1)) |i| { + if (@truncate(u1, fn_info.noalias_bits >> i) != 0) { + dg.addArgAttr(llvm_func, llvm_arg_i, "noalias"); + } + } if (!param_ty.isPtrLikeOptional() and !ptr_info.@"allowzero") { dg.addArgAttr(llvm_func, llvm_arg_i, "nonnull"); } |
