]> granicus.if.org Git - re2c/commit
Serialize '--skeleton' generated data in little-endian.
authorUlya Trofimovich <skvadrik@gmail.com>
Thu, 7 Jan 2016 14:24:52 +0000 (14:24 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Thu, 7 Jan 2016 15:20:37 +0000 (15:20 +0000)
commita27179c535686dd990d693cda2c73c269f32e718
tree237a155b2e69ded3bccab179d0251b2de0a8f689
parent615773a3ee16b8ac7e6aa93dd4656bfc3efdd189
Serialize '--skeleton' generated data in little-endian.

This commit fixes bug #132 "test failure on big endian archs with 0.15.3".

Tests failed because re2c with '--skeleton' option used host endianness
when serializing binary data to file. Expected test result was generated
on little-endian arch, while actual test was run on big-endian arch.

Only three tests failed (out of ~40 tests that are always run with
'--skeleton'), because in most cases data unit is 1 byte and endianness
doesn't matter.

The fix: re2c now converts binary data from host-endian to little-endian
before dumping it to file. Skeleton programs convert data back from
little-endian to host-endian when reading it from file (iff data unit
size is greater than 1 byte).
re2c/src/ir/skeleton/generate_code.cc
re2c/src/ir/skeleton/generate_data.cc
re2c/test/repeat-07_default.gir--skeleton.c
re2c/test/unicode_blocks.u--skeleton--encoding-policy(ignore).c
re2c/test/unicode_blocks.x--skeleton--encoding-policy(ignore).c