authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-12-18 00:25:07-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-12-18 00:25:07-05:00
log83a668b9caac7a9ae7ed2b2e9bf87f34ec2ab1eb
tree17220de13f64782c039d9bf56fdaff8376d6f33b
parent9f08bfb38ddbe4b066953d68f2f10e9d83ad4e74

IR: unreachable has lowest priority when resolving peer types


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

src/ir.cpp+4-4
...@@ -4248,6 +4248,10 @@ static TypeTableEntry *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_nod...@@ -4248,6 +4248,10 @@ static TypeTableEntry *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_nod
4248 TypeTableEntry *prev_type = prev_inst->type_entry;4248 TypeTableEntry *prev_type = prev_inst->type_entry;
4249 if (cur_type->id == TypeTableEntryIdInvalid) {4249 if (cur_type->id == TypeTableEntryIdInvalid) {
4250 return cur_type;4250 return cur_type;
4251 } else if (prev_type->id == TypeTableEntryIdUnreachable) {
4252 prev_inst = cur_inst;
4253 } else if (cur_type->id == TypeTableEntryIdUnreachable) {
4254 continue;
4251 } else if (prev_type->id == TypeTableEntryIdPureError) {4255 } else if (prev_type->id == TypeTableEntryIdPureError) {
4252 prev_inst = cur_inst;4256 prev_inst = cur_inst;
4253 continue;4257 continue;
...@@ -4265,10 +4269,6 @@ static TypeTableEntry *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_nod...@@ -4265,10 +4269,6 @@ static TypeTableEntry *ir_resolve_peer_types(IrAnalyze *ira, AstNode *source_nod
4265 } else if (types_match_const_cast_only(cur_type, prev_type)) {4269 } else if (types_match_const_cast_only(cur_type, prev_type)) {
4266 prev_inst = cur_inst;4270 prev_inst = cur_inst;
4267 continue;4271 continue;
4268 } else if (prev_type->id == TypeTableEntryIdUnreachable) {
4269 prev_inst = cur_inst;
4270 } else if (cur_type->id == TypeTableEntryIdUnreachable) {
4271 continue;
4272 } else if (prev_type->id == TypeTableEntryIdInt &&4272 } else if (prev_type->id == TypeTableEntryIdInt &&
4273 cur_type->id == TypeTableEntryIdInt &&4273 cur_type->id == TypeTableEntryIdInt &&
4274 prev_type->data.integral.is_signed == cur_type->data.integral.is_signed)4274 prev_type->data.integral.is_signed == cur_type->data.integral.is_signed)