mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
LLVM: be sure to never pass align(0) attribute
This can happen with pointers to zero-bit types. This commit fixes an LLVM assertion being tripped.
This commit is contained in:
parent
c030ec1884
commit
d3542be875
@ -768,7 +768,11 @@ pub const Object = struct {
|
||||
if (ptr_info.@"align" != 0) {
|
||||
dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.@"align");
|
||||
} else {
|
||||
dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.pointee_type.abiAlignment(target));
|
||||
const elem_align = @maximum(
|
||||
ptr_info.pointee_type.abiAlignment(target),
|
||||
1,
|
||||
);
|
||||
dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", elem_align);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -840,7 +844,8 @@ pub const Object = struct {
|
||||
if (ptr_info.@"align" != 0) {
|
||||
dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.@"align");
|
||||
} else {
|
||||
dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", ptr_info.pointee_type.abiAlignment(target));
|
||||
const elem_align = @maximum(ptr_info.pointee_type.abiAlignment(target), 1);
|
||||
dg.addArgAttrInt(llvm_func, llvm_arg_i, "align", elem_align);
|
||||
}
|
||||
const ptr_param = llvm_func.getParam(llvm_arg_i);
|
||||
llvm_arg_i += 1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user