Commit aa60d2a688

Jimmi HC <jimmiholstchristensen@gmail.com>
2019-06-16 02:10:06
fixes resolving aligment of child type in slice
1 parent 7c5ceb0
Changed files (3)
src
test
stage1
behavior
src/ir.cpp
@@ -16794,7 +16794,7 @@ static IrInstruction *ir_analyze_instruction_slice_type(IrAnalyze *ira,
         case ZigTypeIdPromise:
         case ZigTypeIdVector:
             {
-                if ((err = type_resolve(ira->codegen, child_type, ResolveStatusZeroBitsKnown)))
+                if ((err = type_resolve(ira->codegen, child_type, ResolveStatusAlignmentKnown)))
                     return ira->codegen->invalid_instruction;
                 ZigType *slice_ptr_type = get_pointer_to_type_extra(ira->codegen, child_type,
                         is_const, is_volatile, PtrLenUnknown, align_bytes, 0, 0, is_allow_zero);
test/stage1/behavior/bugs/2689.zig
@@ -0,0 +1,7 @@
+test "slice with alignment" {
+    const S = packed struct {
+        a: u8,
+    };
+
+    var a: []align(8) S = undefined;
+}
test/stage1/behavior.zig
@@ -27,6 +27,7 @@ comptime {
     _ = @import("behavior/bugs/2114.zig");
     _ = @import("behavior/bugs/2346.zig");
     _ = @import("behavior/bugs/2578.zig");
+    _ = @import("behavior/bugs/2689.zig");
     _ = @import("behavior/bugs/394.zig");
     _ = @import("behavior/bugs/421.zig");
     _ = @import("behavior/bugs/529.zig");