049-init-scalar-global.scm (612B)
1 ;; tests/cc-cg/49-init-scalar-global.scm — emit a global int with a 2 ;; constant initializer; main returns its value. 3 ;; 4 ;; Models: int g = 42; int main(void) { return g; } 5 ;; Runtime: exits 42. 6 7 (let* ((cg (cg-init)) 8 (g (%sym "g" 'var 'static %t-i32 #f)) 9 ;; structured init: a single 4-byte LE bytevector piece for 42. 10 (bv4 (make-bytevector 4 0)) 11 (_ (bytevector-u8-set! bv4 0 42)) 12 (init (list bv4))) 13 (cg-emit-global cg g init) 14 (cg-fn-begin cg "main" '() %t-i32) 15 (cg-push-sym cg g) 16 (cg-load cg) 17 (cg-return cg) 18 (cg-fn-end cg) 19 (write-bv-fd 1 (cg-finish cg)))