aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig16
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);
+}