aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.hpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2025-01-01 17:26:15 +0000
committergingerBill <bill@gingerbill.org>2025-01-01 17:26:15 +0000
commit7b334d2bd9e881b450fb19e394d6d71840a62cf9 (patch)
treede11b2d8cf8b41331e1bb8354292e0253272ea14 /src/llvm_backend.hpp
parent1cf7a56ba700b8a20b4fe94459db416679501793 (diff)
Add `#branch_location`
Diffstat (limited to 'src/llvm_backend.hpp')
-rw-r--r--src/llvm_backend.hpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp
index e84ffd1cd..8ca11bf28 100644
--- a/src/llvm_backend.hpp
+++ b/src/llvm_backend.hpp
@@ -359,6 +359,10 @@ struct lbProcedure {
bool in_multi_assignment;
Array<LLVMValueRef> raw_input_parameters;
+ bool uses_branch_location;
+ TokenPos branch_location_pos;
+ TokenPos curr_token_pos;
+
Array<lbVariadicReuseSlices> variadic_reuses;
lbAddr variadic_reuse_base_array_ptr;
@@ -444,7 +448,8 @@ gb_internal lbValue lb_emit_matrix_ev(lbProcedure *p, lbValue s, isize row, isiz
gb_internal lbValue lb_emit_arith(lbProcedure *p, TokenKind op, lbValue lhs, lbValue rhs, Type *type);
gb_internal lbValue lb_emit_byte_swap(lbProcedure *p, lbValue value, Type *end_type);
-gb_internal void lb_emit_defer_stmts(lbProcedure *p, lbDeferExitKind kind, lbBlock *block);
+gb_internal void lb_emit_defer_stmts(lbProcedure *p, lbDeferExitKind kind, lbBlock *block, TokenPos pos);
+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);