parent
cbb3f1d76c
commit
869167fc6d
@ -13644,6 +13644,11 @@ static TypeTableEntry *ir_analyze_fn_call(IrAnalyze *ira, IrInstructionCall *cal
|
|||||||
return ir_finish_anal(ira, result->value.type);
|
return ir_finish_anal(ira, result->value.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fn_entry != nullptr && fn_entry->fn_inline == FnInlineAlways && fn_inline == FnInlineNever) {
|
||||||
|
ir_add_error(ira, &call_instruction->base,
|
||||||
|
buf_sprintf("no-inline call of inline function"));
|
||||||
|
return ira->codegen->builtin_types.entry_invalid;
|
||||||
|
}
|
||||||
|
|
||||||
IrInstruction *new_call_instruction = ir_build_call_from(&ira->new_irb, &call_instruction->base,
|
IrInstruction *new_call_instruction = ir_build_call_from(&ira->new_irb, &call_instruction->base,
|
||||||
fn_entry, fn_ref, call_param_count, casted_args, false, fn_inline, false, nullptr, casted_new_stack);
|
fn_entry, fn_ref, call_param_count, casted_args, false, fn_inline, false, nullptr, casted_new_stack);
|
||||||
|
@ -1,6 +1,17 @@
|
|||||||
const tests = @import("tests.zig");
|
const tests = @import("tests.zig");
|
||||||
|
|
||||||
pub fn addCases(cases: *tests.CompileErrorContext) void {
|
pub fn addCases(cases: *tests.CompileErrorContext) void {
|
||||||
|
cases.add(
|
||||||
|
"@noInlineCall on an inline function",
|
||||||
|
\\inline fn foo() void {}
|
||||||
|
\\
|
||||||
|
\\export fn entry() void {
|
||||||
|
\\ @noInlineCall(foo);
|
||||||
|
\\}
|
||||||
|
,
|
||||||
|
".tmp_source.zig:4:5: error: no-inline call of inline function",
|
||||||
|
);
|
||||||
|
|
||||||
cases.add(
|
cases.add(
|
||||||
"comptime continue inside runtime switch",
|
"comptime continue inside runtime switch",
|
||||||
\\export fn entry() void {
|
\\export fn entry() void {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user