[PATCH] D17371: [MSan] Make unaligned load/store functions compatible for both endians

Mohit Bhakkad via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 21 22:21:07 PST 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL261513: [MSan] Make unaligned load/store functions compatible for both endians (authored by mohit.bhakkad).

Changed prior to commit:
  http://reviews.llvm.org/D17371?vs=48456&id=48649#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D17371

Files:
  compiler-rt/trunk/lib/msan/msan.cc

Index: compiler-rt/trunk/lib/msan/msan.cc
===================================================================
--- compiler-rt/trunk/lib/msan/msan.cc
+++ compiler-rt/trunk/lib/msan/msan.cc
@@ -580,13 +580,13 @@
 }
 
 u16 __sanitizer_unaligned_load16(const uu16 *p) {
-  __msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p);
+  *(uu16 *)&__msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p);
   if (__msan_get_track_origins())
     __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
   return *p;
 }
 u32 __sanitizer_unaligned_load32(const uu32 *p) {
-  __msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p);
+  *(uu32 *)&__msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p);
   if (__msan_get_track_origins())
     __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
   return *p;
@@ -598,15 +598,15 @@
   return *p;
 }
 void __sanitizer_unaligned_store16(uu16 *p, u16 x) {
-  u16 s = __msan_param_tls[1];
+  u16 s = *(uu16 *)&__msan_param_tls[1];
   *(uu16 *)MEM_TO_SHADOW((uptr)p) = s;
   if (s && __msan_get_track_origins())
     if (uu32 o = __msan_param_origin_tls[2])
       SetOriginIfPoisoned((uptr)p, (uptr)&s, sizeof(s), o);
   *p = x;
 }
 void __sanitizer_unaligned_store32(uu32 *p, u32 x) {
-  u32 s = __msan_param_tls[1];
+  u32 s = *(uu32 *)&__msan_param_tls[1];
   *(uu32 *)MEM_TO_SHADOW((uptr)p) = s;
   if (s && __msan_get_track_origins())
     if (uu32 o = __msan_param_origin_tls[2])


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17371.48649.patch
Type: text/x-patch
Size: 1444 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160222/da3d2903/attachment.bin>


More information about the llvm-commits mailing list