Commit 69bd2c243e

Veikka Tuominen <git@vexu.eu>
2022-03-03 18:06:54
stage2: remove opaque type workaround from `Type.ptrAlignment`
1 parent 7691013
Changed files (2)
src/Sema.zig
@@ -16852,7 +16852,7 @@ fn beginComptimePtrLoad(
                     };
                     return ComptimePtrLoadKit{
                         .root_val = parent.root_val,
-                        .root_ty = parent.ty,
+                        .root_ty = parent.root_ty,
                         .val = try parent.val.elemValue(sema.arena, elem_ptr.index),
                         .ty = elem_ty,
                         .byte_offset = byte_offset,
@@ -16868,7 +16868,7 @@ fn beginComptimePtrLoad(
                     }
                     return ComptimePtrLoadKit{
                         .root_val = parent.root_val,
-                        .root_ty = parent.ty,
+                        .root_ty = parent.root_ty,
                         .val = parent.val,
                         .ty = parent.ty,
                         .byte_offset = parent.byte_offset,
@@ -16896,7 +16896,7 @@ fn beginComptimePtrLoad(
             };
             return ComptimePtrLoadKit{
                 .root_val = parent.root_val,
-                .root_ty = parent.ty,
+                .root_ty = parent.root_ty,
                 .val = try parent.val.fieldValue(sema.arena, field_index),
                 .ty = parent.ty.structFieldType(field_index),
                 .byte_offset = byte_offset,
src/type.zig
@@ -2170,11 +2170,7 @@ pub const Type = extern union {
             .optional_single_mut_pointer,
             => {
                 const child_type = self.cast(Payload.ElemType).?.data;
-                if (child_type.zigTypeTag() == .Opaque) {
-                    return 1;
-                } else {
-                    return child_type.abiAlignment(target);
-                }
+                return child_type.abiAlignment(target);
             },
 
             .manyptr_u8,
@@ -2188,8 +2184,6 @@ pub const Type = extern union {
                 const ptr_info = self.castTag(.pointer).?.data;
                 if (ptr_info.@"align" != 0) {
                     return ptr_info.@"align";
-                } else if (ptr_info.pointee_type.zigTypeTag() == .Opaque) {
-                    return 1;
                 } else {
                     return ptr_info.pointee_type.abiAlignment(target);
                 }
@@ -2246,6 +2240,7 @@ pub const Type = extern union {
             .export_options,
             .extern_options,
             .@"opaque",
+            .anyopaque,
             => return 1,
 
             .fn_noreturn_no_args, // represents machine code; not a pointer
@@ -2419,7 +2414,6 @@ pub const Type = extern union {
 
             .empty_struct,
             .void,
-            .anyopaque,
             .empty_struct_literal,
             .type,
             .comptime_int,