Files
sx/tests
agra 161254f5bb issue-0037: @foreign_global from a helper function lowers to undef
Repro found while writing PLAN-FFI step 0.10.

In a single file:

  __stdinp : *void #foreign;
  stdinp_addr :: () -> u64 { xx @__stdinp; }
  main :: () -> s32 {
      a : u64 = xx @__stdinp;     // a = real symbol address
      b := stdinp_addr();         // b = 0
      ...
  }

The emitted IR for the helper is `ret i64 undef`, suggesting the
`address_of(identifier=__stdinp)` branch in lower.zig (~line 1719)
doesn't see `__stdinp` in `global_names` at the moment the helper's
body is being lowered — even though the same lookup succeeds inside
main's body in the same compilation unit.

Likely cause: lazy-body lowering ordering vs. the pass that
registers extern global decls into `global_names`. Worth verifying
which before fixing — could also be per-function scoping of the
map. Phase 1 of the FFI plan doesn't depend on this, so it stays
filed as an open issue and gets addressed when convenient (or when
sx-side `extern` cross-file globals from issue-0030 land and need
the same lookup to work everywhere).
2026-05-19 12:05:55 +03:00
..
05
2026-02-26 14:46:21 +02:00
2026-02-15 12:02:36 +02:00
2026-02-18 15:59:49 +02:00