Subject: bug#5754: Bytecomp Arithmetic test failed

From: Chong Yidong <[email-masked]>
Date: Sat, 03 Apr 2010 18:40:59 -0400

> I tried to run some tests in the `test' subdir,
> and `bytecomp-testsuite-run' in `test/bytecomp-testsuite.el' fails
> on one test: (let ((a (expt 2 -1074)) (b 0.125)) (* a 8 b))
> returns 5e-324 when evaluated by interpreter,
> but after byte-compilation returns 0.0

I originally thought this was a regression, because my copy of Emacs
23.1 did not appear to have this problem.  On further investigation, it
is not a regression.  Emacs 23.1 and before also have the problem.

The key is that if I compile Emacs with CFLAGS="-g", then

(funcall
 (byte-compile
  (list 'lambda nil
	(quote (let ((a (expt 2 -1074)) (b 0.125)) (* a 8 b))))))

returns 0.0.  If I compile Emacs with CFLAGS="-g -O2", then it returns
5e-324.

It looks like this may be a compiler bug.