aboutsummaryrefslogtreecommitdiff
path: root/libsanitizer
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2019-03-13 09:15:02 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2019-03-13 09:15:02 +0000
commita196c82cf236299e00704f3fc23eba798bdc6e37 (patch)
treec968ca32f7a714dddfc9950d802691a4a75795e8 /libsanitizer
parent36b50aeb4e6f4ed3ab12346c7d3d18215f1acf7a (diff)
re PR sanitizer/80953 (Support libsanitizer on Solaris)
PR sanitizer/80953 Merge from LLVM revision 355979 * asan/asan_globals.c (GetGlobalsForAddress): Use internal_memcpy to copy Global objects for SPARC with GCC. From-SVN: r269640
Diffstat (limited to 'libsanitizer')
-rw-r--r--libsanitizer/ChangeLog7
-rw-r--r--libsanitizer/asan/asan_globals.cc4
2 files changed, 11 insertions, 0 deletions
diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
index 65df77e742f..4815db0c22c 100644
--- a/libsanitizer/ChangeLog
+++ b/libsanitizer/ChangeLog
@@ -1,6 +1,13 @@
2019-03-13 Eric Botcazou <ebotcazou@adacore.com>
PR sanitizer/80953
+ Merge from LLVM revision 355979
+ * asan/asan_globals.c (GetGlobalsForAddress): Use internal_memcpy to
+ copy Global objects for SPARC with GCC.
+
+2019-03-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR sanitizer/80953
Merge from LLVM revision 355978
* sanitizer_common/sanitizer_allocator_primary32.h
(class SizeClassAllocator32): Assert that kSpaceSize is power of 2 if
diff --git a/libsanitizer/asan/asan_globals.cc b/libsanitizer/asan/asan_globals.cc
index a59a2dc27a4..10f090940fe 100644
--- a/libsanitizer/asan/asan_globals.cc
+++ b/libsanitizer/asan/asan_globals.cc
@@ -112,7 +112,11 @@ int GetGlobalsForAddress(uptr addr, Global *globals, u32 *reg_sites,
if (flags()->report_globals >= 2)
ReportGlobal(g, "Search");
if (IsAddressNearGlobal(addr, g)) {
+#if defined(__GNUC__) && defined(__sparc__)
+ internal_memcpy(&globals[res], &g, sizeof(g));
+#else
globals[res] = g;
+#endif
if (reg_sites)
reg_sites[res] = FindRegistrationSite(&g);
res++;