diff options
| author | Jimmi HC <jimmiholstchristensen@gmail.com> | 2019-06-16 02:10:06 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-06-16 00:03:43 -0400 |
| commit | aa60d2a688c965dcccf8e2c42afe5c180daba8fc (patch) | |
| tree | 47ac9dd0a965448e4969d3e21bb142f8b6542357 | |
| parent | 7c5ceb0c4cdf5fafadd92b13048bc9878554abc4 (diff) | |
| download | zig-aa60d2a688c965dcccf8e2c42afe5c180daba8fc.tar.gz zig-aa60d2a688c965dcccf8e2c42afe5c180daba8fc.zip | |
fixes resolving aligment of child type in slice
| -rw-r--r-- | src/ir.cpp | 2 | ||||
| -rw-r--r-- | test/stage1/behavior.zig | 1 | ||||
| -rw-r--r-- | test/stage1/behavior/bugs/2689.zig | 7 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index 6c1c84da3b..0936f78df3 100644 --- a/src/ir.cpp +++ b/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); diff --git a/test/stage1/behavior.zig b/test/stage1/behavior.zig index f477bb64ed..707d46fd8c 100644 --- a/test/stage1/behavior.zig +++ b/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"); diff --git a/test/stage1/behavior/bugs/2689.zig b/test/stage1/behavior/bugs/2689.zig new file mode 100644 index 0000000000..d1c1062ada --- /dev/null +++ b/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; +} |
