mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-15 02:12:22 -07:00
Add unimplemented and unreachable procedures; make os.exit a diverging procedure
This commit is contained in:
+5
-4
@@ -1645,6 +1645,10 @@ irValue *ir_emit_bitcast(irProcedure *proc, irValue *data, Type *type) {
|
||||
return ir_emit(proc, ir_instr_conv(proc, irConv_bitcast, data, ir_type(data), type));
|
||||
}
|
||||
|
||||
void ir_emit_unreachable(irProcedure *proc) {
|
||||
ir_emit(proc, ir_instr_unreachable(proc));
|
||||
}
|
||||
|
||||
irValue *ir_emit_transmute(irProcedure *proc, irValue *value, Type *t);
|
||||
irValue *ir_address_from_load_or_generate_local(irProcedure *proc, irValue *val);
|
||||
irValue *ir_emit_struct_ep(irProcedure *proc, irValue *s, i32 index);
|
||||
@@ -1749,6 +1753,7 @@ irValue *ir_emit_call(irProcedure *p, irValue *value, Array<irValue *> args, Pro
|
||||
if (abi_rt != results) {
|
||||
result = ir_emit_transmute(p, result, rt);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1838,10 +1843,6 @@ void ir_close_scope(irProcedure *proc, irDeferExitKind kind, irBlock *block) {
|
||||
|
||||
|
||||
|
||||
void ir_emit_unreachable(irProcedure *proc) {
|
||||
ir_emit(proc, ir_instr_unreachable(proc));
|
||||
}
|
||||
|
||||
void ir_emit_return(irProcedure *proc, irValue *v) {
|
||||
ir_emit_defer_stmts(proc, irDeferExit_Return, nullptr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user