diff options
| author | Jimmi Holst Christensen <jhc@liab.dk> | 2018-04-13 10:40:37 +0200 |
|---|---|---|
| committer | Jimmi Holst Christensen <jhc@liab.dk> | 2018-04-13 10:40:37 +0200 |
| commit | a498993fd102c649c3d24f73f064c5bbafb9b3ec (patch) | |
| tree | 9793afe4632a0be0b6868dc5b4f7173e0152ba0f /src/ir.cpp | |
| parent | 44c53c9979e30653a109b07ee90ba57e3bc8a7df (diff) | |
| parent | 0f652b4d80a57f5b5a1054d06cd5767ce52402a1 (diff) | |
| download | zig-a498993fd102c649c3d24f73f064c5bbafb9b3ec.tar.gz zig-a498993fd102c649c3d24f73f064c5bbafb9b3ec.zip | |
Merged with master
Diffstat (limited to 'src/ir.cpp')
| -rw-r--r-- | src/ir.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index 7d8088d5ed..3ba58a09bd 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -11395,7 +11395,19 @@ static TypeTableEntry *ir_analyze_instruction_decl_var(IrAnalyze *ira, IrInstruc } break; case VarClassRequiredAny: - // OK + if (casted_init_value->value.special == ConstValSpecialStatic && + casted_init_value->value.type->id == TypeTableEntryIdFn && + casted_init_value->value.data.x_ptr.data.fn.fn_entry->fn_inline == FnInlineAlways) + { + var_class_requires_const = true; + if (!var->src_is_const && !is_comptime_var) { + ErrorMsg *msg = ir_add_error_node(ira, source_node, + buf_sprintf("functions marked inline must be stored in const or comptime var")); + AstNode *proto_node = casted_init_value->value.data.x_ptr.data.fn.fn_entry->proto_node; + add_error_note(ira->codegen, msg, proto_node, buf_sprintf("declared here")); + result_type = ira->codegen->builtin_types.entry_invalid; + } + } break; } } |
