| ... | ... | @@ -21383,15 +21383,20 @@ static IrInstruction *ir_analyze_instruction_c_define(IrAnalyze *ira, IrInstruct |
| 21383 | 21383 | if (type_is_invalid(value->value.type)) |
| 21384 | 21384 | return ira->codegen->invalid_instruction; |
| 21385 | 21385 | |
| 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 | } |
| 21389 | 21393 | |
| 21390 | 21394 | Buf *c_import_buf = exec_c_import_buf(ira->new_irb.exec); |
| 21391 | 21395 | // We check for this error in pass1 |
| 21392 | 21396 | assert(c_import_buf); |
| 21393 | 21397 | |
| 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) : ""); |
| 21395 | 21400 | |
| 21396 | 21401 | return ir_const_void(ira, &instruction->base); |
| 21397 | 21402 | } |