|
From: <sv...@va...> - 2005-04-22 20:23:36
|
Author: sewardj
Date: 2005-04-22 21:23:27 +0100 (Fri, 22 Apr 2005)
New Revision: 3542
Modified:
trunk/memcheck/mc_main.c
Log:
mc_LOADVn_slow: When loading from invalid addresses, mark loaded data
as defined.
Modified: trunk/memcheck/mc_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mc_main.c 2005-04-22 16:29:19 UTC (rev 3541)
+++ trunk/memcheck/mc_main.c 2005-04-22 20:23:27 UTC (rev 3542)
@@ -322,9 +322,9 @@
ULong mc_LOADVn_slow ( Addr a, SizeT szB, Bool bigendian )
{
/* Make up a result V word, which contains the loaded data for
- valid addresses and Undefined for invalid addresses. Iterate
- over the bytes in the word, from the most significant down to
- the least. */
+ valid addresses and Defined for invalid addresses. Iterate over
+ the bytes in the word, from the most significant down to the
+ least. */
ULong vw =3D VGM_WORD64_INVALID;
SizeT i =3D szB-1;
SizeT n_addrs_bad =3D 0;
@@ -343,7 +343,7 @@
if (!aok)
n_addrs_bad++;
vw <<=3D 8;=20
- vw |=3D 0xFF & (aok ? vbyte : VGM_BYTE_INVALID);
+ vw |=3D 0xFF & (aok ? vbyte : VGM_BYTE_VALID);
if (i =3D=3D 0) break;
i--;
}
@@ -351,8 +351,6 @@
if (n_addrs_bad > 0)
MAC_(record_address_error)( VG_(get_running_tid)(), a, szB, False =
);
=20
- //if (n_addrs_bad =3D=3D n)
- // vw =3D VGM_WORD64_VALID;
return vw;
}
=20
|