authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2019-09-10 16:19:31+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-09-10 11:16:50-04:00
loge2c68fce89d7d308b445ed26025a674aff938151
tree445e097ef77c489257ad0bc25fce8d6bbf90408b
parente657b73f30e3380b14caf3a115a4c7a97c510d77

Accept void argument for @cDefine value

Closes #2612

1 files changed, 9 insertions(+), 4 deletions(-)

src/ir.cpp+9-4
......@@ -21383,15 +21383,20 @@ static IrInstruction *ir_analyze_instruction_c_define(IrAnalyze *ira, IrInstruct
2138321383 if (type_is_invalid(value->value.type))
2138421384 return ira->codegen->invalid_instruction;
2138521385
21386 Buf *define_value = ir_resolve_str(ira, value);
21387 if (!define_value)
21388 return ira->codegen->invalid_instruction;
21386 Buf *define_value = nullptr;
21387 // The second parameter is either a string or void (equivalent to "")
21388 if (value->value.type->id != ZigTypeIdVoid) {
21389 define_value = ir_resolve_str(ira, value);
21390 if (!define_value)
21391 return ira->codegen->invalid_instruction;
21392 }
2138921393
2139021394 Buf *c_import_buf = exec_c_import_buf(ira->new_irb.exec);
2139121395 // We check for this error in pass1
2139221396 assert(c_import_buf);
2139321397
21394 buf_appendf(c_import_buf, "#define %s %s\n", buf_ptr(define_name), buf_ptr(define_value));
21398 buf_appendf(c_import_buf, "#define %s %s\n", buf_ptr(define_name),
21399 define_value ? buf_ptr(define_value) : "");
2139521400
2139621401 return ir_const_void(ira, &instruction->base);
2139721402}