Avoid resolve_const in cmp when instr are not comptime

master
Jimmi Holst Christensen 2018-06-30 21:22:26 +02:00
parent ecd5e60be9
commit 055e0fef4e
1 changed files with 2 additions and 2 deletions

View File

@ -11029,10 +11029,10 @@ static TypeTableEntry *ir_analyze_bin_op_cmp(IrAnalyze *ira, IrInstructionBinOp
bool one_possible_value = !type_requires_comptime(resolved_type) && !type_has_bits(resolved_type); bool one_possible_value = !type_requires_comptime(resolved_type) && !type_has_bits(resolved_type);
if (one_possible_value || (instr_is_comptime(casted_op1) && instr_is_comptime(casted_op2))) { if (one_possible_value || (instr_is_comptime(casted_op1) && instr_is_comptime(casted_op2))) {
ConstExprValue *op1_val = ir_resolve_const(ira, casted_op1, UndefBad); ConstExprValue *op1_val = one_possible_value ? &casted_op1->value : ir_resolve_const(ira, casted_op1, UndefBad);
if (op1_val == nullptr) if (op1_val == nullptr)
return ira->codegen->builtin_types.entry_invalid; return ira->codegen->builtin_types.entry_invalid;
ConstExprValue *op2_val = ir_resolve_const(ira, casted_op2, UndefBad); ConstExprValue *op2_val = one_possible_value ? &casted_op2->value : ir_resolve_const(ira, casted_op2, UndefBad);
if (op2_val == nullptr) if (op2_val == nullptr)
return ira->codegen->builtin_types.entry_invalid; return ira->codegen->builtin_types.entry_invalid;