diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2026-01-15 16:32:52 +0000 |
|---|---|---|
| committer | gingerBill <gingerBill@users.noreply.github.com> | 2026-01-15 16:32:52 +0000 |
| commit | 0366cd3304b3910a397c4989e46bee4c575adeec (patch) | |
| tree | f75675c69bcafcd7020e97cfd17565d31eae7c4b /src/llvm_backend.hpp | |
| parent | 7f509c01f1c912e2d4ccf5d8f1a029167fff107e (diff) | |
Add `#must_tail` (similar syntax to `#force_inline`
Diffstat (limited to 'src/llvm_backend.hpp')
| -rw-r--r-- | src/llvm_backend.hpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp index da5d91f2e..9db7e94d9 100644 --- a/src/llvm_backend.hpp +++ b/src/llvm_backend.hpp @@ -345,6 +345,7 @@ struct lbProcedure { Ast * body; u64 tags; ProcInlining inlining; + ProcTailing tailing; bool is_foreign; bool is_export; bool is_entry_point; @@ -484,7 +485,7 @@ gb_internal void lb_emit_defer_stmts(lbProcedure *p, lbDeferExitKind kind, lbBlo gb_internal void lb_emit_defer_stmts(lbProcedure *p, lbDeferExitKind kind, lbBlock *block, Ast *node); gb_internal lbValue lb_emit_transmute(lbProcedure *p, lbValue value, Type *t); gb_internal lbValue lb_emit_comp(lbProcedure *p, TokenKind op_kind, lbValue left, lbValue right); -gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> const &args, ProcInlining inlining = ProcInlining_none); +gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> const &args, ProcInlining inlining = ProcInlining_none, ProcTailing tailing = ProcTailing_none); gb_internal lbValue lb_emit_conv(lbProcedure *p, lbValue value, Type *t); gb_internal lbValue lb_emit_comp_against_nil(lbProcedure *p, TokenKind op_kind, lbValue x); |