I can disable the optimization by adding a volatile at the right place in ieee_init. I'll adopt this for a solution since it does not cost in performance. However, if I compile the following program: class A create make feature make do io.put_double (d) io.put_new_line io.put_double ({REAL_64}.negative_infinity) io.put_new_line end t: REAL_64 = 0.0 end and then compile it (first it compiles just fine for me), second when executed it prints 0 and -Infinity as expected. I'm going to send you a runtime with the volatile fix in it and see if it solves the issue or not.