[MSan] Endianness should not matter while printing a byte

Reviewers: eugenis

Subscribers: jaydeep, sagar, llvm-commits

Differential Revision: http://reviews.llvm.org/D17264
Differential Revision: http://reviews.llvm.org/D17563

llvm-svn: 261982
This commit is contained in:
Mohit K. Bhakkad 2016-02-26 06:44:10 +00:00
parent 5539f852ae
commit fac2e248c4
3 changed files with 2 additions and 11 deletions

View File

@ -462,13 +462,8 @@ void __msan_dump_shadow(const void *x, uptr size) {
}
unsigned char *s = (unsigned char*)MEM_TO_SHADOW(x);
for (uptr i = 0; i < size; i++) {
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
Printf("%x%x ", s[i] & 0xf, s[i] >> 4);
#else
for (uptr i = 0; i < size; i++)
Printf("%x%x ", s[i] >> 4, s[i] & 0xf);
#endif
}
Printf("\n");
}

View File

@ -221,11 +221,7 @@ void DescribeMemoryRange(const void *x, uptr size) {
} else {
unsigned char v = *(unsigned char *)s;
if (v) last_quad_poisoned = true;
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
Printf("%x%x", v & 0xf, v >> 4);
#else
Printf("%x%x", v >> 4, v & 0xf);
#endif
}
// Group end.
if (pos % 4 == 3 && with_origins) {

View File

@ -6,7 +6,7 @@
int main(void) {
unsigned long long x = 0; // For 8-byte alignment.
uint32_t x_s = 0x12345678U;
char x_s[4] = {0x87, 0x65, 0x43, 0x21};
__msan_partial_poison(&x, &x_s, sizeof(x_s));
__msan_print_shadow(&x, sizeof(x_s));
return 0;