commit ba4d83af3e58ce2a34ccb945a297211333fd904c (tree)
parent e2c68fce89d7d308b445ed26025a674aff938151
Author: LemonBoy <thatlemon@gmail.com>
Date: Tue, 10 Sep 2019 17:20:48 +0200
Resolve lazy arguments passed to @compileLog
Closes #3193
Diffstat:
1 file changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/ir.cpp b/src/ir.cpp
@@ -19735,6 +19735,11 @@ static IrInstruction *ir_analyze_instruction_compile_log(IrAnalyze *ira, IrInstr
if (type_is_invalid(msg->value.type))
return ira->codegen->invalid_instruction;
buf_resize(&buf, 0);
+ if (msg->value.special == ConstValSpecialLazy) {
+ // Resolve any lazy value that's passed, we need its value
+ if (ir_resolve_lazy(ira->codegen, msg->source_node, &msg->value))
+ return ira->codegen->invalid_instruction;
+ }
render_const_value(ira->codegen, &buf, &msg->value);
const char *comma_str = (i != 0) ? ", " : "";
fprintf(stderr, "%s%s", comma_str, buf_ptr(&buf));