]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Memcheck on multithreaded program fails with Assertion 'sizeof(UWord) == sizeof(UInt...
authorRhys Kidd <rhyskidd@gmail.com>
Mon, 8 Jun 2015 11:07:48 +0000 (11:07 +0000)
committerRhys Kidd <rhyskidd@gmail.com>
Mon, 8 Jun 2015 11:07:48 +0000 (11:07 +0000)
bz#302630
== bz#326797

On OS X 10.7 and OS X 10.8

Before:

== 598 tests, 201 stderr failures, 12 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

After:

== 598 tests, 200 stderr failures, 12 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures ==

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15329

NEWS
coregrind/m_syswrap/syswrap-darwin.c

diff --git a/NEWS b/NEWS
index 98c9537a29271f1e7b15d70368b8377e8fbfeb8f..3a91179c777ed876f220240a281a5307a9e98646 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -111,6 +111,9 @@ where XXXXXX is the bug number as listed below.
 254164  OS X task_info: UNKNOWN task message [id 3405, to mach_task_self(), 
         reply 0x........]
 269360  s390x: Fix addressing mode selection for compare-and-swap
+302630  Memcheck on multithreaded program fails with Assertion 
+        'sizeof(UWord) == sizeof(UInt)' failed in m_syscall.c
+        == 326797
 319274  Fix unhandled syscall: unix:410 (sigsuspend_nocancel) on OS X
 333051  mmap of huge pages fails due to incorrect alignment
         == 339163
index de2f7db3ceb428e535d77ac62e4b55e9229330d0..d065b1cda4564c628019bceb66f196c4b468a815 100644 (file)
@@ -7375,12 +7375,23 @@ PRE(thread_terminate)
       // and SET_STATUS_Success creates a UNIX-class syscall result.
       // Hence we have to laboriously construct the full SysRes "by hand"
       // and use that to set the syscall return status.
+#if defined(VGA_x86)
       SET_STATUS_from_SysRes(
          VG_(mk_SysRes_x86_darwin)(
             VG_DARWIN_SYSCALL_CLASS_MACH,
             False/*success*/, 0, 0
          )
       );
+#elif defined(VGA_amd64)
+       SET_STATUS_from_SysRes(
+         VG_(mk_SysRes_amd64_darwin)(
+            VG_DARWIN_SYSCALL_CLASS_MACH,
+            False/*success*/, 0, 0
+         )
+      );
+#else
+#error unknown architecture
+#endif
       *flags &= ~SfMayBlock;  // clear flag set by PRE(mach_msg)
    } else {
       // Terminating some other thread.