| ... | ... | @@ -2195,6 +2195,8 @@ static TypeTableEntry *analyze_container_init_expr(CodeGen *g, ImportTableEntry |
| 2195 | 2195 | int expr_field_count = container_init_expr->entries.length; |
| 2196 | 2196 | int actual_field_count = container_type->data.structure.src_field_count; |
| 2197 | 2197 | |
| 2198 | AstNode *non_const_expr_culprit = nullptr; |
| 2199 | |
| 2198 | 2200 | int *field_use_counts = allocate<int>(actual_field_count); |
| 2199 | 2201 | ConstExprValue *const_val = &get_resolved_expr(node)->const_val; |
| 2200 | 2202 | const_val->ok = true; |
| ... | ... | @@ -2239,11 +2241,17 @@ static TypeTableEntry *analyze_container_init_expr(CodeGen *g, ImportTableEntry |
| 2239 | 2241 | const_val->depends_on_compile_var = const_val->depends_on_compile_var || field_val->depends_on_compile_var; |
| 2240 | 2242 | } else { |
| 2241 | 2243 | const_val->ok = false; |
| 2244 | non_const_expr_culprit = val_field_node->data.struct_val_field.expr; |
| 2242 | 2245 | } |
| 2243 | 2246 | } |
| 2244 | 2247 | } |
| 2245 | 2248 | if (!const_val->ok) { |
| 2246 | | context->fn_entry->struct_val_expr_alloca_list.append(codegen); |
| 2249 | assert(non_const_expr_culprit); |
| 2250 | if (context->fn_entry) { |
| 2251 | context->fn_entry->struct_val_expr_alloca_list.append(codegen); |
| 2252 | } else { |
| 2253 | add_node_error(g, non_const_expr_culprit, buf_sprintf("unable to evaluate constant expression")); |
| 2254 | } |
| 2247 | 2255 | } |
| 2248 | 2256 | |
| 2249 | 2257 | for (int i = 0; i < actual_field_count; i += 1) { |