| ... | @@ -768,7 +768,11 @@ pub const Object = struct { | ... | @@ -768,7 +768,11 @@ pub const Object = struct { |
| 768 | if (ptr_info.@"align" != 0) { | 768 | if (ptr_info.@"align" != 0) { |
| 769 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.@"align"); | 769 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.@"align"); |
| 770 | } else { | 770 | } else { |
| 771 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.pointee_type.abiAlignment(target)); | 771 | const elem_align = @maximum( |
| | 772 | ptr_info.pointee_type.abiAlignment(target), |
| | 773 | 1, |
| | 774 | ); |
| | 775 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", elem_align); |
| 772 | } | 776 | } |
| 773 | } | 777 | } |
| 774 | } | 778 | } |
| ... | @@ -840,7 +844,8 @@ pub const Object = struct { | ... | @@ -840,7 +844,8 @@ pub const Object = struct { |
| 840 | if (ptr_info.@"align" != 0) { | 844 | if (ptr_info.@"align" != 0) { |
| 841 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.@"align"); | 845 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.@"align"); |
| 842 | } else { | 846 | } else { |
| 843 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.pointee_type.abiAlignment(target)); | 847 | const elem_align = @maximum(ptr_info.pointee_type.abiAlignment(target), 1); |
| | 848 | dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", elem_align); |
| 844 | } | 849 | } |
| 845 | const ptr_param = llvm_func.getParam(llvm_arg_i); | 850 | const ptr_param = llvm_func.getParam(llvm_arg_i); |
| 846 | llvm_arg_i += 1; | 851 | llvm_arg_i += 1; |