diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-09-22 10:04:47 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-09-22 10:04:47 -0400 |
| commit | 5c15c5fc48fa61569eca7bcd49e1c819db2a90c9 (patch) | |
| tree | c0095f46e83632ba5ac75fa1960efcd2ecfdcfe0 /src/ir.cpp | |
| parent | 2e2740716103784334348c491a0e4d84052c5734 (diff) | |
| download | zig-5c15c5fc48fa61569eca7bcd49e1c819db2a90c9.tar.gz zig-5c15c5fc48fa61569eca7bcd49e1c819db2a90c9.zip | |
add compile error for slice of undefined slice
closes #1293
Diffstat (limited to 'src/ir.cpp')
| -rw-r--r-- | src/ir.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index a35c6380a7..7e98e99af1 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -19229,6 +19229,11 @@ static ZigType *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstructionSlice return ira->codegen->builtin_types.entry_invalid; parent_ptr = &slice_ptr->data.x_struct.fields[slice_ptr_index]; + if (parent_ptr->special == ConstValSpecialUndef) { + ir_add_error(ira, &instruction->base, buf_sprintf("slice of undefined")); + return ira->codegen->builtin_types.entry_invalid; + } + ConstExprValue *len_val = &slice_ptr->data.x_struct.fields[slice_len_index]; switch (parent_ptr->data.x_ptr.special) { |
