// inferred_scalar_global_test — module-level inferred/const-expr scalar global // emit + read. Migrated from test/wcc/947_inferred_scalar_global_run.c // (#66 b-i, #134 neg, #133 const-expr). An inferred / unary / const-expr int // global once emitted no DATAW on wwstage (MOVSXD on stale AX) and link-failed // on cstage; the let pass-2 arm now const-folds the rhs and stamps an N_INTLIT // so cgen's literal DATA emitter fires in BOTH stages. cstage build+run was T1; // cs==ww .s byte-id rides T2 (test-lang-byteid). The div-by-zero const-expr // reject is the runww carrier test/wcc/data/const_divzero_reject. // // The typed controls (typed_ctrl/neg_typed_ctrl/const_typed) lock the // construction proof: the inferred decl's emitted .s equals the typed decl's // after defaulting. package inferred_scalar_global_test; let SI = 42; let STC: i64 = 42; let SNI = -42; let SNT: int = -42; let SCI = 7 * 6; let SCT: i64 = 7 * 6; def KD: int = 6; let SDR = KD * 7; let SUB = -(2 * 3); @test fn inferred() void = { assert(SI: i64 == 42); }; @test fn typed_ctrl() void = { assert(STC == 42); }; @test fn neg_inferred() void = { assert(SNI: i64 == -42); }; @test fn neg_typed_ctrl() void = { assert(SNT == -42); }; @test fn const_inferred() void = { assert(SCI: i64 == 42); }; @test fn const_typed() void = { assert(SCT == 42); }; @test fn const_defref() void = { assert(SDR: i64 == 42); }; @test fn const_unary_binop() void = { assert(SUB: i64 == -6); };