bytevectors: Fix IEEE-754 endianness conversion.
authorLudovic Courtès <ludo@gnu.org>
Sat, 21 Apr 2012 21:08:49 +0000 (23:08 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sun, 22 Apr 2012 18:39:33 +0000 (20:39 +0200)
commit398446c7428b3d98d168fcc3ff170829d3e09f9a
tree7752953f54bbb2cbab259c15fab91784f0cfb1d9
parentfd07759b7d4c9d631090b04855ab81b6a2109e9e
bytevectors: Fix IEEE-754 endianness conversion.

Fixes <http://bugs.gnu.org/11310>.
Reported by Klaus Stehle <klaus.stehle@uni-tuebingen.de>.

* libguile/ieee-754.h: Remove.
* libguile/Makefile.am (noinst_HEADERS): Remove `ieee-754.h'.

* libguile/bytevectors.c (scm_ieee754_float, scm_ieee754_double): New
  unions.
  (float_to_foreign_endianness, float_from_foreign_endianness,
  double_to_foreign_endianness, double_from_foreign_endianness): Rewrite
  in terms of the new unions.

* test-suite/tests/bytevectors.test ("2.8 Operations on IEEE-754
  Representations")["single, little endian", "single, big endian",
  "double, little endian", "double, big endian"]: New tests.
libguile/Makefile.am
libguile/bytevectors.c
libguile/ieee-754.h [deleted file]
test-suite/tests/bytevectors.test