diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2015-12-22 13:22:40 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2015-12-22 13:22:40 -0700 |
| commit | 431170d981edf1eba790cefe0f27a6142634ea1d (patch) | |
| tree | 67f8d09417dd0bb151f0b22ac9fa52e90f2664aa /src/analyze.cpp | |
| parent | 437e9b954d8a47a1acb6aa5327c6473ab8d9267c (diff) | |
| download | zig-431170d981edf1eba790cefe0f27a6142634ea1d.tar.gz zig-431170d981edf1eba790cefe0f27a6142634ea1d.zip | |
codegen: fix struct pointer field access
Diffstat (limited to 'src/analyze.cpp')
| -rw-r--r-- | src/analyze.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp index 62e4e5d606..de71673c49 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -273,10 +273,14 @@ static void preview_function_labels(CodeGen *g, AstNode *node, FnTableEntry *fn_ static void resolve_struct_type(CodeGen *g, ImportTableEntry *import, TypeTableEntry *struct_type) { assert(struct_type->id == TypeTableEntryIdStruct); + if (struct_type->data.structure.fields) { + // we already resolved this type. skip + return; + } + AstNode *decl_node = struct_type->data.structure.decl_node; assert(struct_type->di_type); - assert(!struct_type->data.structure.fields); int field_count = decl_node->data.struct_decl.fields.length; struct_type->data.structure.field_count = field_count; |
