diff --git a/memcheck/docs/mc-manual.xml b/memcheck/docs/mc-manual.xml
index 1aa7eff3e..170fe1ddb 100644
--- a/memcheck/docs/mc-manual.xml
+++ b/memcheck/docs/mc-manual.xml
@@ -947,7 +947,7 @@ is
-
+
Controls how Memcheck handles 32-, 64-, 128- and 256-bit
@@ -965,8 +965,7 @@ is
Note that code that behaves in this way is in violation of
the ISO C/C++ standards, and should be considered broken. If
- at all possible, such code should be fixed. This option should be
- used only as a last resort.
+ at all possible, such code should be fixed.
diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c
index e3ed7139a..6a00aa77a 100644
--- a/memcheck/mc_main.c
+++ b/memcheck/mc_main.c
@@ -5689,15 +5689,10 @@ static Bool mc_expensive_sanity_check ( void )
/*--- Command line args ---*/
/*------------------------------------------------------------*/
-/* --partial-loads-ok: enable by default on MacOS. The MacOS system
- graphics libraries are heavily vectorised, and not enabling this by
- default causes lots of false errors. */
-#if defined(VGO_darwin)
+/* 31 Aug 2015: Vectorised code is now so widespread that
+ --partial-loads-ok needs to be enabled by default on all platforms.
+ Not doing so causes lots of false errors. */
Bool MC_(clo_partial_loads_ok) = True;
-#else
-Bool MC_(clo_partial_loads_ok) = False;
-#endif
-
Long MC_(clo_freelist_vol) = 20*1000*1000LL;
Long MC_(clo_freelist_big_blocks) = 1*1000*1000LL;
LeakCheckMode MC_(clo_leak_check) = LC_Summary;
@@ -5874,11 +5869,6 @@ static Bool mc_process_cmd_line_options(const HChar* arg)
static void mc_print_usage(void)
{
- const HChar* plo_default = "no";
-# if defined(VGO_darwin)
- plo_default = "yes";
-# endif
-
VG_(printf)(
" --leak-check=no|summary|full search for memory leaks at exit? [summary]\n"
" --leak-resolution=low|med|high differentiation of leak stack traces [high]\n"
@@ -5899,7 +5889,7 @@ static void mc_print_usage(void)
" same as --show-leak-kinds=definite\n"
" --undef-value-errors=no|yes check for undefined value errors [yes]\n"
" --track-origins=no|yes show origins of undefined values? [no]\n"
-" --partial-loads-ok=no|yes too hard to explain here; see manual [%s]\n"
+" --partial-loads-ok=no|yes too hard to explain here; see manual [yes]\n"
" --freelist-vol= volume of freed blocks queue [20000000]\n"
" --freelist-big-blocks= releases first blocks with size>= [1000000]\n"
" --workaround-gcc296-bugs=no|yes self explanatory [no]\n"
@@ -5909,7 +5899,6 @@ static void mc_print_usage(void)
" --keep-stacktraces=alloc|free|alloc-and-free|alloc-then-free|none\n"
" stack trace(s) to keep for malloc'd/free'd areas [alloc-and-free]\n"
" --show-mismatched-frees=no|yes show frees that don't match the allocator? [yes]\n"
-, plo_default
);
}
diff --git a/memcheck/tests/partial_load_dflt.stderr.exp b/memcheck/tests/partial_load_dflt.stderr.exp
index 871f6512b..fdb4a338e 100644
--- a/memcheck/tests/partial_load_dflt.stderr.exp
+++ b/memcheck/tests/partial_load_dflt.stderr.exp
@@ -1,10 +1,4 @@
-Invalid read of size 4
- at 0x........: main (partial_load.c:16)
- Address 0x........ is 0 bytes inside a block of size 3 alloc'd
- at 0x........: calloc (vg_replace_malloc.c:...)
- by 0x........: main (partial_load.c:14)
-
Invalid read of size 4
at 0x........: main (partial_load.c:23)
Address 0x........ is 1 bytes inside a block of size 4 alloc'd
@@ -31,4 +25,4 @@ HEAP SUMMARY:
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
diff --git a/memcheck/tests/partial_load_dflt.stderr.exp64 b/memcheck/tests/partial_load_dflt.stderr.exp64
index 8873a2542..a57d9aa0d 100644
--- a/memcheck/tests/partial_load_dflt.stderr.exp64
+++ b/memcheck/tests/partial_load_dflt.stderr.exp64
@@ -1,10 +1,4 @@
-Invalid read of size 8
- at 0x........: main (partial_load.c:16)
- Address 0x........ is 0 bytes inside a block of size 7 alloc'd
- at 0x........: calloc (vg_replace_malloc.c:...)
- by 0x........: main (partial_load.c:14)
-
Invalid read of size 8
at 0x........: main (partial_load.c:23)
Address 0x........ is 1 bytes inside a block of size 8 alloc'd
@@ -31,4 +25,4 @@ HEAP SUMMARY:
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
diff --git a/memcheck/tests/test-plo-no.vgtest b/memcheck/tests/test-plo-no.vgtest
index 14d4be32e..cbe322cbc 100644
--- a/memcheck/tests/test-plo-no.vgtest
+++ b/memcheck/tests/test-plo-no.vgtest
@@ -1,2 +1,2 @@
prog: test-plo
-vgopts: -q --keep-stacktraces=alloc-then-free
+vgopts: -q --partial-loads-ok=no --keep-stacktraces=alloc-then-free