aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.hpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2026-01-15 16:32:52 +0000
committergingerBill <gingerBill@users.noreply.github.com>2026-01-15 16:32:52 +0000
commit0366cd3304b3910a397c4989e46bee4c575adeec (patch)
treef75675c69bcafcd7020e97cfd17565d31eae7c4b /src/llvm_backend.hpp
parent7f509c01f1c912e2d4ccf5d8f1a029167fff107e (diff)
Add `#must_tail` (similar syntax to `#force_inline`
Diffstat (limited to 'src/llvm_backend.hpp')
-rw-r--r--src/llvm_backend.hpp3
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);