| ... | ... | @@ -2584,18 +2584,7 @@ fn validateAlign( |
| 2584 | 2584 | src: LazySrcLoc, |
| 2585 | 2585 | alignment: u64, |
| 2586 | 2586 | ) !Alignment { |
| 2587 | | const result = try validateAlignAllowZero(sema, block, src, alignment); |
| 2588 | | if (result == .none) return sema.fail(block, src, "alignment must be >= 1", .{}); |
| 2589 | | return result; |
| 2590 | | } |
| 2591 | | |
| 2592 | | fn validateAlignAllowZero( |
| 2593 | | sema: *Sema, |
| 2594 | | block: *Block, |
| 2595 | | src: LazySrcLoc, |
| 2596 | | alignment: u64, |
| 2597 | | ) !Alignment { |
| 2598 | | if (alignment == 0) return .none; |
| 2587 | if (alignment == 0) return sema.fail(block, src, "alignment must be >= 1", .{}); |
| 2599 | 2588 | if (!std.math.isPowerOfTwo(alignment)) { |
| 2600 | 2589 | return sema.fail(block, src, "alignment value '{d}' is not a power of two", .{ |
| 2601 | 2590 | alignment, |
| ... | ... | @@ -20496,7 +20485,7 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 20496 | 20485 | else => {}, |
| 20497 | 20486 | } |
| 20498 | 20487 | const align_bytes = (try val.getUnsignedIntSema(pt)).?; |
| 20499 | | break :blk try sema.validateAlignAllowZero(block, align_src, align_bytes); |
| 20488 | break :blk try sema.validateAlign(block, align_src, align_bytes); |
| 20500 | 20489 | } else .none; |
| 20501 | 20490 | |
| 20502 | 20491 | const address_space: std.builtin.AddressSpace = if (inst_data.flags.has_addrspace) blk: { |
| ... | ... | @@ -26858,7 +26847,7 @@ fn zirFuncFancy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A |
| 26858 | 26847 | if (val.isGenericPoison()) { |
| 26859 | 26848 | break :blk null; |
| 26860 | 26849 | } |
| 26861 | | break :blk try sema.validateAlignAllowZero(block, align_src, try val.toUnsignedIntSema(pt)); |
| 26850 | break :blk try sema.validateAlign(block, align_src, try val.toUnsignedIntSema(pt)); |
| 26862 | 26851 | } else if (extra.data.bits.has_align_ref) blk: { |
| 26863 | 26852 | const align_ref: Zir.Inst.Ref = @enumFromInt(sema.code.extra[extra_index]); |
| 26864 | 26853 | extra_index += 1; |
| ... | ... | @@ -26876,7 +26865,7 @@ fn zirFuncFancy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A |
| 26876 | 26865 | error.GenericPoison => break :blk null, |
| 26877 | 26866 | else => |e| return e, |
| 26878 | 26867 | }; |
| 26879 | | break :blk try sema.validateAlignAllowZero(block, align_src, try align_val.toUnsignedIntSema(pt)); |
| 26868 | break :blk try sema.validateAlign(block, align_src, try align_val.toUnsignedIntSema(pt)); |
| 26880 | 26869 | } else .none; |
| 26881 | 26870 | |
| 26882 | 26871 | const @"addrspace": ?std.builtin.AddressSpace = if (extra.data.bits.has_addrspace_body) blk: { |