aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/stage1/ir.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/stage1/ir.cpp b/src/stage1/ir.cpp
index 9278ee7564..864f2615f9 100644
--- a/src/stage1/ir.cpp
+++ b/src/stage1/ir.cpp
@@ -12706,11 +12706,13 @@ static ZigType *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_node, ZigT
}
if (prev_type->id == ZigTypeIdInt &&
- cur_type->id == ZigTypeIdInt &&
- prev_type->data.integral.is_signed == cur_type->data.integral.is_signed)
+ cur_type->id == ZigTypeIdInt)
{
- if (cur_type->data.integral.bit_count > prev_type->data.integral.bit_count) {
- prev_inst = cur_inst;
+ if ((prev_type->data.integral.is_signed == cur_type->data.integral.is_signed) ||
+ (cur_type->data.integral.is_signed && !prev_type->data.integral.is_signed)) {
+ if (cur_type->data.integral.bit_count > prev_type->data.integral.bit_count) {
+ prev_inst = cur_inst;
+ }
}
continue;
}