diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-09-19 17:50:58 +0300 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2022-09-20 00:50:13 +0300 |
| commit | 3e80aa9079cfad8c95f506b1eb644daeed6cbb7b (patch) | |
| tree | 02ef7d3e94b3f02dc1fc8899a390c6c412f6b8ce /src/Sema.zig | |
| parent | 540130650f843f0c6aa79c2a2f29e79b33846994 (diff) | |
| download | zig-3e80aa9079cfad8c95f506b1eb644daeed6cbb7b.tar.gz zig-3e80aa9079cfad8c95f506b1eb644daeed6cbb7b.zip | |
Sema: validate `@alignOf` type
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 773b7aa66c..2b8705339c 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -16492,6 +16492,9 @@ fn zirAlignOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air const inst_data = sema.code.instructions.items(.data)[inst].un_node; const operand_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; const ty = try sema.resolveType(block, operand_src, inst_data.operand); + if (ty.isNoReturn()) { + return sema.fail(block, operand_src, "no align available for type '{}'", .{ty.fmt(sema.mod)}); + } const target = sema.mod.getTarget(); const val = try ty.lazyAbiAlignment(target, sema.arena); if (val.tag() == .lazy_align) { |
