Files
zig/stage0/sema_tests
Motiejus Jakštys aff1358c98 sema: fix addhf3 — no AIR rollback on ComptimeReturn, comptime-only dbg_arg_inline skip, seen-calls for param type scanning
Three fixes to match upstream Sema.zig behavior for addhf3:

1. ComptimeReturn: don't rollback air_inst_len at all (upstream keeps
   all body instructions as dead instructions in the AIR array).
   This preserves nested dead blocks from comptime inline calls.

2. dbg_arg_inline: skip emission when the declared param type is
   comptime-only (comptime_int, comptime_float, enum_literal).
   Ported from addDbgVar's val_ty.comptimeOnlySema() check.
   The C sema doesn't coerce comptime IP values to the param type,
   so we check the ZIR param type body directly.

3. Param type body scanning: always register calls in the global
   seen_calls set (even when the dead block is skipped due to
   type_fn_created).  This ensures that after type_fn_created is
   reset by analyzeFuncBodyAndRecord, subsequent calls still dedup.

Enables num_passing = 9 (addhf3) and adds comptime_arg_dbg.zig unit test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-24 22:16:28 +00:00
..