]> 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 14:24:52 +0000 (14:24 +0000)
commitde094eba9f39655184910013d4eb55b0fdcd4722
treec9c5e1e480c71bfad3c93d5cdd747f6a635e248a
parentcaf00b33d4589fab3ac4f7c1433213ff3f60c9b0
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/codegen/skeleton/generate_code.cc
re2c/src/codegen/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