diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2016-03-09 23:39:40 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2016-03-09 23:39:40 +0000 |
commit | c1424fc7c883c4bd184c4a715749a587c6b96fb2 (patch) | |
tree | e9e36884ea4d9a2ed915e13c883176828114afb0 /llvm/lib/CodeGen/MachineFunctionPass.cpp | |
parent | 3c4b1290a417ea70318b7424c9376f02abf09343 (diff) | |
download | bcm5719-llvm-c1424fc7c883c4bd184c4a715749a587c6b96fb2.tar.gz bcm5719-llvm-c1424fc7c883c4bd184c4a715749a587c6b96fb2.zip |
sanitizer: Fix endianness checks for gcc
Summary:
__BIG_ENDIAN__ and __LITTLE_ENDIAN__ are not supported by gcc, which
eg. for ubsan Value::getFloatValue will silently fall through to
the little endian branch, breaking display of float values by ubsan.
Use __BYTE_ORDER__ == __ORDER_BIG/LITTLE_ENDIAN__ as the condition
instead, which is supported by both clang and gcc.
Noticed while porting ubsan to s390x.
Patch by Marcin KoĆcielnicki!
Differential Revision: http://reviews.llvm.org/D17660
llvm-svn: 263077
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunctionPass.cpp')
0 files changed, 0 insertions, 0 deletions