diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-08-27 13:59:18 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-08-27 13:59:18 -0400 |
| commit | 428a2fdedd1d2d9ce6c7a3b28a379e4484468b9c (patch) | |
| tree | ba01c1cdb18bed90ee9ffe3ac350a2307e1aa6cc /src/analyze.cpp | |
| parent | e1b258f39fcb4fff97a4fcf6ee9db10bb71646cc (diff) | |
| download | zig-428a2fdedd1d2d9ce6c7a3b28a379e4484468b9c.tar.gz zig-428a2fdedd1d2d9ce6c7a3b28a379e4484468b9c.zip | |
better handle struct depends on itself via optional field
closes #1995
Diffstat (limited to 'src/analyze.cpp')
| -rw-r--r-- | src/analyze.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp index e0223dd9f7..893c8121a5 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -1977,6 +1977,10 @@ static Error resolve_union_alignment(CodeGen *g, ZigType *union_type) { field->align = field->type_entry->abi_align; } else { if ((err = type_val_resolve_abi_align(g, field->type_val, &field->align))) { + if (g->trace_err != nullptr) { + g->trace_err = add_error_note(g, g->trace_err, field->decl_node, + buf_create_from_str("while checking this field")); + } union_type->data.unionation.resolve_status = ResolveStatusInvalid; return err; } @@ -2497,6 +2501,10 @@ static Error resolve_struct_alignment(CodeGen *g, ZigType *struct_type) { field->align = 1; } else { if ((err = type_val_resolve_abi_align(g, field->type_val, &field->align))) { + if (g->trace_err != nullptr) { + g->trace_err = add_error_note(g, g->trace_err, field->decl_node, + buf_create_from_str("while checking this field")); + } struct_type->data.structure.resolve_status = ResolveStatusInvalid; return err; } |
