aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 91386405be..048895e5bf 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -1123,6 +1123,15 @@ pub const Union = struct {
/// undefined until `status` is `have_field_types` or `have_layout`.
ty: Type,
abi_align: Value,
+
+ /// Returns the field alignment, assuming the union is not packed.
+ pub fn normalAlignment(field: Field, target: Target) u32 {
+ if (field.abi_align.tag() == .abi_align_default) {
+ return field.ty.abiAlignment(target);
+ } else {
+ return @intCast(u32, field.abi_align.toUnsignedInt());
+ }
+ }
};
pub const Fields = std.StringArrayHashMapUnmanaged(Field);