kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

commit 396214b995f7cee9b41f1d2038dd59e79d8c1a07
parent 0e80961769b914c539ffb502ea6be3cb3130fc8c
Author: Ryan Sepassi <rsepassi@gmail.com>
Date:   Tue, 19 May 2026 16:55:14 -0700

Fix parser CAS type stack

Diffstat:
Mlang/c/parse/cg_adapter.c | 8++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lang/c/parse/cg_adapter.c b/lang/c/parse/cg_adapter.c @@ -576,12 +576,16 @@ void pcg_atomic_rmw(Parser* p, AtomicOp op, MemOrder ord) { } void pcg_atomic_cas(Parser* p, MemOrder succ, MemOrder fail) { - const Type* ty = pcg_top_type(p); + const Type* ty = pcg_top2_type(p); if (pcg_emit_enabled(p)) { cfree_cg_atomic_cmpxchg(p->cg, pcg_mem(p, ty), pcg_mem_order(succ), pcg_mem_order(fail), 0); } - pcg_retag_top(p, type_prim(p->pool, TY_BOOL)); + pcg_drop_type(p); /* desired */ + pcg_drop_type(p); /* expected */ + pcg_drop_type(p); /* pointer */ + pcg_push_type(p, ty); + pcg_push_type(p, type_prim(p->pool, TY_BOOL)); } void pcg_fence(Parser* p, MemOrder ord) {