[cfe-commits] [PATCH gcc-compat] add __BYTE_ORDER__ predefined macro

nobled nobled at dreamwidth.org
Fri Jul 27 09:48:09 PDT 2012


The __BYTE_ORDER__ predefined macro was added in GCC 4.6:
http://gcc.gnu.org/onlinedocs/gcc-4.6.0/cpp/Common-Predefined-Macros.html

It's used like the following:
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
...
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
...
#else
#error insane architecture like the pdp-11
#endif

There's a similar macro, __FLOAT_WORD_ORDER__, but it looks like it
mainly exist to accommodate fairly obscure architectures and ARM's
old FPA instructions, so it doesn't seem nearly as useful.

The tests are updated to check for the correct(at least, based on
clang's current output) value of the macro on each target. So now the
suite will catch bugs like the one fixed in r157626. (Not sure if the
TCE pseudo-architecture is actually supposed to be big-endian or not,
but that's how it comes out right now. None of the targets in
Targets.cpp seem to ever say "BigEndian = true;" -- is it
default-initialized to true somewhere else?)

OK to commit?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Preprocessor-add-__BYTE_ORDER__-predefined-macro.patch
Type: application/octet-stream
Size: 8603 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120727/652623c7/attachment.obj>


More information about the cfe-commits mailing list