diff options
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 4f400fa7fc..86f2613b5f 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -890,3 +890,19 @@ fn lowerDeclRef( return Result{ .appended = {} }; } + +pub fn errUnionPayloadOffset(ty: Type, target: std.Target) u64 { + const payload_ty = ty.errorUnionPayload(); + return if (Type.anyerror.abiAlignment(target) >= payload_ty.abiAlignment(target)) + Type.anyerror.abiSize(target) + else + 0; +} + +pub fn errUnionErrOffset(ty: Type, target: std.Target) u64 { + const payload_ty = ty.errorUnionPayload(); + return if (Type.anyerror.abiAlignment(target) >= payload_ty.abiAlignment(target)) + 0 + else + payload_ty.abiSize(target); +} |
