Fix msan compilation warnings, see af38074874c605f9 upstream
This commit is contained in:
parent
9c1a23eab5
commit
c47f5015f8
68
0001-Fix-strict-aliasing-warning-in-msan.cpp.patch
Normal file
68
0001-Fix-strict-aliasing-warning-in-msan.cpp.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
From af38074874c605f9e598ae3f7e5d4befa3fe92bb Mon Sep 17 00:00:00 2001
|
||||||
|
From: serge-sans-paille <sguelton@redhat.com>
|
||||||
|
Date: Thu, 28 May 2020 17:50:31 +0200
|
||||||
|
Subject: [PATCH] Fix strict aliasing warning in msan.cpp
|
||||||
|
|
||||||
|
Use internal_memcpy instead.
|
||||||
|
|
||||||
|
Differential Revision: https://reviews.llvm.org/D80732
|
||||||
|
---
|
||||||
|
compiler-rt/lib/msan/msan.cpp | 21 ++++++++++++++-------
|
||||||
|
1 file changed, 14 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git compiler-rt.orig/lib/msan/msan.cpp compiler-rt/lib/msan/msan.cpp
|
||||||
|
index 7095ee1bf20..8c789901adc 100644
|
||||||
|
--- compiler-rt.orig/lib/msan/msan.cpp
|
||||||
|
+++ compiler-rt/lib/msan/msan.cpp
|
||||||
|
@@ -617,34 +617,41 @@ u32 __msan_get_umr_origin() {
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 __sanitizer_unaligned_load16(const uu16 *p) {
|
||||||
|
- *(uu16 *)&__msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p);
|
||||||
|
+ internal_memcpy(&__msan_retval_tls[0], (void *)MEM_TO_SHADOW((uptr)p),
|
||||||
|
+ sizeof(uu16));
|
||||||
|
if (__msan_get_track_origins())
|
||||||
|
__msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
|
||||||
|
return *p;
|
||||||
|
}
|
||||||
|
u32 __sanitizer_unaligned_load32(const uu32 *p) {
|
||||||
|
- *(uu32 *)&__msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p);
|
||||||
|
+ internal_memcpy(&__msan_retval_tls[0], (void *)MEM_TO_SHADOW((uptr)p),
|
||||||
|
+ sizeof(uu32));
|
||||||
|
if (__msan_get_track_origins())
|
||||||
|
__msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
|
||||||
|
return *p;
|
||||||
|
}
|
||||||
|
u64 __sanitizer_unaligned_load64(const uu64 *p) {
|
||||||
|
- __msan_retval_tls[0] = *(uu64 *)MEM_TO_SHADOW((uptr)p);
|
||||||
|
+ internal_memcpy(&__msan_retval_tls[0], (void *)MEM_TO_SHADOW((uptr)p),
|
||||||
|
+ sizeof(uu64));
|
||||||
|
if (__msan_get_track_origins())
|
||||||
|
__msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
|
||||||
|
return *p;
|
||||||
|
}
|
||||||
|
void __sanitizer_unaligned_store16(uu16 *p, u16 x) {
|
||||||
|
- u16 s = *(uu16 *)&__msan_param_tls[1];
|
||||||
|
- *(uu16 *)MEM_TO_SHADOW((uptr)p) = s;
|
||||||
|
+ static_assert(sizeof(uu16) == sizeof(u16), "incompatible types");
|
||||||
|
+ u16 s;
|
||||||
|
+ internal_memcpy(&s, &__msan_param_tls[1], sizeof(uu16));
|
||||||
|
+ internal_memcpy((void *)MEM_TO_SHADOW((uptr)p), &s, sizeof(uu16));
|
||||||
|
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 = *(uu32 *)&__msan_param_tls[1];
|
||||||
|
- *(uu32 *)MEM_TO_SHADOW((uptr)p) = s;
|
||||||
|
+ static_assert(sizeof(uu32) == sizeof(u32), "incompatible types");
|
||||||
|
+ u32 s;
|
||||||
|
+ internal_memcpy(&s, &__msan_param_tls[1], sizeof(uu32));
|
||||||
|
+ internal_memcpy((void *)MEM_TO_SHADOW((uptr)p), &s, sizeof(uu32));
|
||||||
|
if (s && __msan_get_track_origins())
|
||||||
|
if (uu32 o = __msan_param_origin_tls[2])
|
||||||
|
SetOriginIfPoisoned((uptr)p, (uptr)&s, sizeof(s), o);
|
||||||
|
--
|
||||||
|
2.25.2
|
||||||
|
|
@ -4,7 +4,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
#%%global rc_ver 6
|
#%%global rc_ver 6
|
||||||
%global baserelease 1
|
%global baserelease 2
|
||||||
|
|
||||||
%global crt_srcdir compiler-rt-%{version}%{?rc_ver:rc%{rc_ver}}.src
|
%global crt_srcdir compiler-rt-%{version}%{?rc_ver:rc%{rc_ver}}.src
|
||||||
|
|
||||||
@ -31,6 +31,7 @@ Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{versio
|
|||||||
Source2: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc
|
Source2: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc
|
||||||
|
|
||||||
Patch0: 0001-PATCH-std-thread-copy.patch
|
Patch0: 0001-PATCH-std-thread-copy.patch
|
||||||
|
Patch1: 0001-Fix-strict-aliasing-warning-in-msan.cpp.patch
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -127,6 +128,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 11 2020 sguelton@redhat.com - 10.0.0-2
|
||||||
|
- Fix msan compilation warnings, see af38074874c605f9 upstream
|
||||||
|
|
||||||
* Mon Mar 30 2020 sguelton@redhat.com - 10.0.0-1
|
* Mon Mar 30 2020 sguelton@redhat.com - 10.0.0-1
|
||||||
- 10.0.0 final
|
- 10.0.0 final
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user