aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance
diff options
context:
space:
mode:
authorGravatar zinc <zinc@downsta.ir> 2026-10-14 16:47:08 +0330
committerGravatar zinc <zinc@downsta.ir> 2026-10-14 16:47:08 +0330
commit4a96db860c95ed6ea8a03cb24c54ebfb9325ada8 (patch)
tree9fa3a1fe8a667661cbc7efffa278702e44842604 /tests/conformance
parentzc0umd: no recast uses a visible u/m/d as its tag (spec 1.6.3); spec: the fix... (diff)
globals: an integer constant initializing a float or f32 global converts to float (float g = 2; is 2.0)
Diffstat (limited to 'tests/conformance')
-rw-r--r--tests/conformance/5-declarations/global_float_int_init.zc9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/conformance/5-declarations/global_float_int_init.zc b/tests/conformance/5-declarations/global_float_int_init.zc
new file mode 100644
index 0000000..ac0e187
--- /dev/null
+++ b/tests/conformance/5-declarations/global_float_int_init.zc
@@ -0,0 +1,9 @@
+// expect: 1/1/1/1/1/
+// spec 5.3.2: an integer constant initializing a float or f32 converts to float, for globals and locals
+include rt;
+void pn(int x) { rt.put_n(x); rt.put_c(10); }
+float g = 2;
+f32 h = 1 + 2;
+float n = -4;
+fn main() { float l = 2; f32 m = 3; pn(g == 2.0); pn(h == 3.0); pn(n == -4.0); pn(l == 2.0); pn(m == 3.0); return 0; }
+// zc0: skip