diff options
| author | LemonBoy <thatlemon@gmail.com> | 2020-10-25 12:25:34 +0100 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2020-10-28 21:56:28 +0200 |
| commit | 7bc95316982da0da6fd5d935645972fe5464e46e (patch) | |
| tree | 8ba243f467260d4cb3847b59facd0b252e32d6fe /src | |
| parent | 0adc144f88b567054e63df808aac0227445e88bb (diff) | |
| download | zig-7bc95316982da0da6fd5d935645972fe5464e46e.tar.gz zig-7bc95316982da0da6fd5d935645972fe5464e46e.zip | |
stage1: Correctly generated optional constant values
Closes #6799
Diffstat (limited to 'src')
| -rw-r--r-- | src/stage1/ir.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/stage1/ir.cpp b/src/stage1/ir.cpp index 00600c7e43..c1d89444a3 100644 --- a/src/stage1/ir.cpp +++ b/src/stage1/ir.cpp @@ -16313,6 +16313,9 @@ static void set_optional_payload(ZigValue *opt_val, ZigValue *payload) { assert(opt_val->type->id == ZigTypeIdOptional); if (payload == nullptr) { set_optional_value_to_null(opt_val); + } else if (get_src_ptr_type(opt_val->type)) { + assert(get_src_ptr_type(payload->type)); + opt_val->data.x_ptr = payload->data.x_ptr; } else if (is_opt_err_set(opt_val->type)) { assert(payload->type->id == ZigTypeIdErrorSet); opt_val->data.x_err_set = payload->data.x_err_set; |
