summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/sanitizer_common/scripts/sancov.py
diff options
context:
space:
mode:
authorBill Seurer <seurer@linux.vnet.ibm.com>2015-03-25 14:56:02 +0000
committerBill Seurer <seurer@linux.vnet.ibm.com>2015-03-25 14:56:02 +0000
commit92760a3551c7c5d54409b522d897ecde921c12bb (patch)
tree4c2bb104f27cda859e4b4afaa353362ac4cc277a /compiler-rt/lib/sanitizer_common/scripts/sancov.py
parent1c012293c8aa091e14b297b0112c8b6ef1bf8c1b (diff)
downloadbcm5719-llvm-92760a3551c7c5d54409b522d897ecde921c12bb.tar.gz
bcm5719-llvm-92760a3551c7c5d54409b522d897ecde921c12bb.zip
[PowerPC]Fix sancov.py to once again support big endian
Some recent changes to sancov.py broke ASAN for big endian. This fixes it. http://reviews.llvm.org/D8594 llvm-svn: 233189
Diffstat (limited to 'compiler-rt/lib/sanitizer_common/scripts/sancov.py')
-rwxr-xr-xcompiler-rt/lib/sanitizer_common/scripts/sancov.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/compiler-rt/lib/sanitizer_common/scripts/sancov.py b/compiler-rt/lib/sanitizer_common/scripts/sancov.py
index fc886c6f7e0..53180d09b76 100755
--- a/compiler-rt/lib/sanitizer_common/scripts/sancov.py
+++ b/compiler-rt/lib/sanitizer_common/scripts/sancov.py
@@ -21,32 +21,32 @@ def Usage():
def CheckBits(bits):
if bits != 32 and bits != 64:
- raise Exception("Wrond bitness: %d" % bits)
+ raise Exception("Wrong bitness: %d" % bits)
def TypeCodeForBits(bits):
CheckBits(bits)
return 'L' if bits == 64 else 'I'
-kMagic64 = 0xC0BFFFFFFFFFFF64
-kMagic32 = 0xC0BFFFFFFFFFFF32
kMagic32SecondHalf = 0xFFFFFF32;
kMagic64SecondHalf = 0xFFFFFF64;
kMagicFirstHalf = 0xC0BFFFFF;
def MagicForBits(bits):
CheckBits(bits)
- # Little endian.
- return [kMagic64SecondHalf if bits == 64 else kMagic32SecondHalf, kMagicFirstHalf]
+ if sys.byteorder == 'little':
+ return [kMagic64SecondHalf if bits == 64 else kMagic32SecondHalf, kMagicFirstHalf]
+ else:
+ return [kMagicFirstHalf, kMagic64SecondHalf if bits == 64 else kMagic32SecondHalf]
def ReadMagicAndReturnBitness(f, path):
magic_bytes = f.read(8)
magic_words = struct.unpack('II', magic_bytes);
bits = 0
- # Assuming little endian.
- if magic_words[1] == kMagicFirstHalf:
- if magic_words[0] == kMagic64SecondHalf:
+ idx = 1 if sys.byteorder == 'little' else 0
+ if magic_words[idx] == kMagicFirstHalf:
+ if magic_words[1-idx] == kMagic64SecondHalf:
bits = 64
- elif magic_words[0] == kMagic32SecondHalf:
+ elif magic_words[1-idx] == kMagic32SecondHalf:
bits = 32
if bits == 0:
raise Exception('Bad magic word in %s' % path)
OpenPOWER on IntegriCloud