From a461ae6c1fd1f8a75126327f104c7c077d35f0a5 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 4 Apr 2017 21:36:24 -0400 Subject: fix crash when referencing invalid member of builtin enum closes #304 --- src/ir.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 6f5f5fbbd2..1fb839ea9d 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -9396,10 +9396,12 @@ static TypeTableEntry *ir_analyze_instruction_field_ptr(IrAnalyze *ira, IrInstru } } ScopeDecls *container_scope = get_container_scope(child_type); - auto entry = container_scope->decl_table.maybe_get(field_name); - Tld *tld = entry ? entry->value : nullptr; - if (tld) { - return ir_analyze_decl_ref(ira, &field_ptr_instruction->base, tld); + if (container_scope != nullptr) { + auto entry = container_scope->decl_table.maybe_get(field_name); + Tld *tld = entry ? entry->value : nullptr; + if (tld) { + return ir_analyze_decl_ref(ira, &field_ptr_instruction->base, tld); + } } ir_add_error(ira, &field_ptr_instruction->base, buf_sprintf("container '%s' has no member called '%s'", -- cgit v1.2.3