Index: memcheck/memcheck.h =================================================================== --- memcheck/memcheck.h (revision 7786) +++ memcheck/memcheck.h (working copy) @@ -173,10 +173,11 @@ error message and returns the address of the first offending byte. Otherwise it returns zero. */ #define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(_qzz_addr,_qzz_len) \ - (__extension__({unsigned int _qzz_res; \ - VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \ + (__extension__({char* _qzz_res; OrigFn _qzz_tmp; \ + VALGRIND_DO_CLIENT_REQUEST(_qzz_tmp.nraddr, 0, \ VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE,\ _qzz_addr, _qzz_len, 0, 0, 0); \ + _qzz_res = (char *)_qzz_tmp.nraddr; \ _qzz_res; \ })) @@ -185,10 +186,11 @@ established, Valgrind prints an error message and returns the address of the first offending byte. Otherwise it returns zero. */ #define VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr,_qzz_len) \ - (__extension__({unsigned int _qzz_res; \ - VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \ + (__extension__({char * _qzz_res; OrigFn _qzz_tmp; \ + VALGRIND_DO_CLIENT_REQUEST(_qzz_tmp.nraddr, 0, \ VG_USERREQ__CHECK_MEM_IS_DEFINED, \ _qzz_addr, _qzz_len, 0, 0, 0); \ + _qzz_res = (char *)_qzz_tmp.nraddr; \ _qzz_res; \ }))