memcheck testcases.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13599
if (value)
for (p = value; *p; p++)
__asm__ __volatile__("" ::: "memory");
- VALGRIND_CHECK_VALUE_IS_DEFINED (overwrite);
+ (void) VALGRIND_CHECK_VALUE_IS_DEFINED (overwrite);
CALL_FN_W_WWW(result, fn, name, value, overwrite);
return result;
}
execve2_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_NONNULL@
+fprw_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
inits_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
long_namespace_xml_SOURCES = long_namespace_xml.cpp
new_nothrow_SOURCES = new_nothrow.cpp
new_override_SOURCES = new_override.cpp
+origin1_yes_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
origin2_not_quite_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
origin3_no_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
str_tester_CFLAGS = $(AM_CFLAGS) -Wno-shadow
+supp_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
supp_unknown_SOURCES = badjump.c
+supp_unknown_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
supp1_SOURCES = supp.c
+supp1_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
supp2_SOURCES = supp.c
+supp2_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
vcpu_bz2_CFLAGS = $(AM_CFLAGS) -O2
vcpu_fbench_CFLAGS = $(AM_CFLAGS) -O2
{
char *m = mm(0, pgsz * 5, PROT_READ);
- VALGRIND_CHECK_MEM_IS_DEFINED(m, pgsz*5); /* all defined */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m, pgsz*5); /* all defined */
}
/* Case 2 - unmapped memory is unaddressable+undefined */
static void test2()
{
char *m = mm(0, pgsz * 5, PROT_READ|PROT_WRITE);
- VALGRIND_CHECK_MEM_IS_DEFINED(m, pgsz*5); /* all OK */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m, pgsz*5); /* all OK */
munmap(&m[pgsz*2], pgsz);
- VALGRIND_CHECK_MEM_IS_DEFINED(&m[pgsz*2], pgsz); /* undefined */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(&m[pgsz*2], pgsz); /* undefined */
/* XXX need a memcheck request to test addressability */
m[pgsz*2] = 'x'; /* unmapped fault */
{
char *m = mm(0, pgsz * 5, PROT_READ|PROT_WRITE);
- VALGRIND_MAKE_MEM_UNDEFINED(&m[pgsz], pgsz);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&m[pgsz], pgsz);
mm(&m[pgsz], pgsz, PROT_READ);
- VALGRIND_CHECK_MEM_IS_DEFINED(&m[pgsz], pgsz); /* OK */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(&m[pgsz], pgsz); /* OK */
}
/* Case 4 - mprotect doesn't affect addressability */
char *m = mm(0, pgsz * 5, PROT_READ|PROT_WRITE);
mprotect(m, pgsz, PROT_WRITE);
- VALGRIND_CHECK_MEM_IS_DEFINED(m, pgsz); /* OK */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m, pgsz); /* OK */
m[44] = 'y'; /* OK */
mprotect(m, pgsz*5, PROT_NONE);
{
char *m = mm(0, pgsz * 5, PROT_READ|PROT_WRITE);
- VALGRIND_MAKE_MEM_UNDEFINED(m, pgsz*5);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(m, pgsz*5);
memset(m, 'x', 10);
- VALGRIND_CHECK_MEM_IS_DEFINED(m, 10); /* OK */
- VALGRIND_CHECK_MEM_IS_DEFINED(m+10, 10); /* BAD */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m, 10); /* OK */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m+10, 10); /* BAD */
mprotect(m, pgsz*5, PROT_NONE);
mprotect(m, pgsz*5, PROT_READ);
- VALGRIND_CHECK_MEM_IS_DEFINED(m, 10); /* still OK */
- VALGRIND_CHECK_MEM_IS_DEFINED(m+20, 10); /* BAD */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m, 10); /* still OK */
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(m+20, 10); /* BAD */
}
static struct test {
int main1 ( void )
{
int xxx, i;
- for (i = 0; i < 10; i++) VALGRIND_CHECK_VALUE_IS_DEFINED(xxx);
+ for (i = 0; i < 10; i++) (void) VALGRIND_CHECK_VALUE_IS_DEFINED(xxx);
return 0;
}
char* aa = calloc(100,1);
sum = 0;
- VALGRIND_CHECK_MEM_IS_DEFINED(aa,100);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(aa,100);
m = VALGRIND_MAKE_MEM_UNDEFINED( &aa[49], 1 );
- VALGRIND_CHECK_MEM_IS_ADDRESSABLE(aa,100);
+ (void) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(aa,100);
printf("m_na: returned value is %d\n", m );
static inline U1 self_shadow ( U1 x )
{
U1 res = 0xFF;
- VALGRIND_MAKE_MEM_UNDEFINED(&res, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&res, 1);
res &= x;
return res;
}
static inline U1 make_def ( U1 x )
{
U1 y = x;
- VALGRIND_MAKE_MEM_DEFINED(&y, 1);
+ (void) VALGRIND_MAKE_MEM_DEFINED(&y, 1);
return y;
}
static inline U1 make_undef ( U1 x )
{
U1 y = x;
- VALGRIND_MAKE_MEM_UNDEFINED(&y, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&y, 1);
return y;
}
static void make_noaccess ( U1* dst )
{
- VALGRIND_MAKE_MEM_NOACCESS(dst, 1);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(dst, 1);
}
static void apply ( void(*fn)(U4,Bool), U4 arg1, Bool arg2 )
static void make_undef ( void* addr, size_t len )
{
- VALGRIND_MAKE_MEM_UNDEFINED(addr, len);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(addr, len);
}
static void make_def ( void* addr, size_t len )
{
- VALGRIND_MAKE_MEM_DEFINED(addr, len);
+ (void) VALGRIND_MAKE_MEM_DEFINED(addr, len);
}
// Returns either |*src| or |alt|.
// program to be using it unless its handed out by custom_alloc()
// with redzones, better not to have it
- VALGRIND_MAKE_MEM_NOACCESS(p, SUPERBLOCK_SIZE);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(p, SUPERBLOCK_SIZE);
return p;
}
// Make the entire array defined again such that it can be verified whether
// the red zone is marked properly when resizing in place.
- VALGRIND_MAKE_MEM_DEFINED(array, sizeof(int) * 10);
+ (void) VALGRIND_MAKE_MEM_DEFINED(array, sizeof(int) * 10);
VALGRIND_RESIZEINPLACE_BLOCK(array, sizeof(int) * 5, sizeof(int) * 7, RZ);
if (array[5]) array[4]++; // uninitialized read of array[5]
int main()
{
char magic_foople_zone[0x1000];
- VALGRIND_CREATE_BLOCK(magic_foople_zone, 0x1000, "magic foople zone");
- VALGRIND_MAKE_MEM_NOACCESS(magic_foople_zone, 0x1000);
+ (void) VALGRIND_CREATE_BLOCK(magic_foople_zone, 0x1000, "magic foople zone");
+ (void) VALGRIND_MAKE_MEM_NOACCESS(magic_foople_zone, 0x1000);
magic_foople_zone[0] = 'x';
return 0;
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}
fprintf(stderr, "\n---- part defined, address error at end ----\n\n");
a = malloc(8);
a[0] = a[1] = a[2] = a[3] = a[6] = a[7] = 'x';
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 9);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 9);
free(a);
fprintf(stderr, "\n---- part defined, address error at start ----\n\n");
a = malloc(8);
a[0] = a[1] = a[2] = a[3] = a[6] = a[7] = 'x';
- VALGRIND_CHECK_MEM_IS_DEFINED(a-1, 9);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a-1, 9);
free(a);
fprintf(stderr, "\n---- fully defined, address error at end ----\n\n");
a = malloc(8);
a[0] = a[1] = a[2] = a[3] = a[4] = a[5] = a[6] = a[7] = 'x';
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 9);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 9);
free(a);
fprintf(stderr, "\n---- fully defined, address error at start ----\n\n");
a = malloc(8);
a[0] = a[1] = a[2] = a[3] = a[4] = a[5] = a[6] = a[7] = 'x';
- VALGRIND_CHECK_MEM_IS_DEFINED(a-1, 9);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a-1, 9);
free(a);
return 0;
assert(p->buf);
memset(p->buf, 0, p->allocated);
VALGRIND_CREATE_MEMPOOL(p, 0, 0);
- VALGRIND_MAKE_MEM_NOACCESS(p->buf, p->allocated);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(p->buf, p->allocated);
return p;
}
VALGRIND_DO_LEAK_CHECK;
// make b10[4000] undefined. This should create a leak.
- VALGRIND_MAKE_MEM_UNDEFINED (&b10[4000], sizeof(char*));
+ (void) VALGRIND_MAKE_MEM_UNDEFINED (&b10[4000], sizeof(char*));
fprintf(stderr, "expecting a leak\n");
fflush(stderr);
VALGRIND_DO_LEAK_CHECK;
// make b10[4000] defined again.
- VALGRIND_MAKE_MEM_DEFINED (&b10[4000], sizeof(char*));
+ (void) VALGRIND_MAKE_MEM_DEFINED (&b10[4000], sizeof(char*));
// now make some bricolage to have some pages around b10[4000]
// unreadable. The leak check should recover from that
perror ("sysconf failed");
if (RUNNING_ON_VALGRIND)
- VALGRIND_NON_SIMD_CALL2(non_simd_mprotect, RNDPAGEDOWN(&b10[4000]), 2 * pagesize);
+ (void) VALGRIND_NON_SIMD_CALL2(non_simd_mprotect, RNDPAGEDOWN(&b10[4000]), 2 * pagesize);
else
mprotect_result = mprotect((void*) RNDPAGEDOWN(&b10[4000]), 2 * pagesize, PROT_NONE);
fprintf(stderr, "mprotect result %d\n", mprotect_result);
int main() {
doit();
- VALGRIND_MONITOR_COMMAND("v.set log_output");
+ (void) VALGRIND_MONITOR_COMMAND("v.set log_output");
fprintf(stderr, "VALGRIND_DO_LEAK_CHECK\n");
VALGRIND_DO_LEAK_CHECK; // All possible leaks should be detected, giving only reachable data.
// Check individually each heuristic
fprintf(stderr, "leak_check summary heuristics multipleinheritance\n");
- VALGRIND_MONITOR_COMMAND("leak_check summary heuristics multipleinheritance");
+ (void) VALGRIND_MONITOR_COMMAND("leak_check summary heuristics multipleinheritance");
fprintf(stderr, "leak_check summary any heuristics newarray\n");
- VALGRIND_MONITOR_COMMAND("leak_check summary heuristics newarray");
+ (void) VALGRIND_MONITOR_COMMAND("leak_check summary heuristics newarray");
fprintf(stderr, "leak_check summary heuristics stdstring\n");
- VALGRIND_MONITOR_COMMAND("leak_check summary heuristics stdstring");
+ (void) VALGRIND_MONITOR_COMMAND("leak_check summary heuristics stdstring");
delete [] ptr;
delete [] ptr2;
int *r, *oldr, *a;
#define TEST(x, exp_x, desc) \
- VALGRIND_MAKE_MEM_DEFINED(&x, sizeof(int)); \
+ (void)VALGRIND_MAKE_MEM_DEFINED(&x, sizeof(int)); \
if (x == exp_x) { \
fprintf(stderr, "PASSED: " desc "\n"); \
} else { \
static int a1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789(void)
{
int x;
- VALGRIND_MAKE_MEM_NOACCESS(&x, sizeof(x));
+ (void) VALGRIND_MAKE_MEM_NOACCESS(&x, sizeof(x));
return *(int *)&x;
}
p->size = p->left = SUPERBLOCK_SIZE;
p->levels = NULL;
- VALGRIND_MAKE_MEM_NOACCESS(p->where, SUPERBLOCK_SIZE);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(p->where, SUPERBLOCK_SIZE);
return p;
}
level_list *l = p->levels;
p->levels = l->next;
VALGRIND_DESTROY_MEMPOOL(l->where);
- VALGRIND_MAKE_MEM_NOACCESS(l->where, p->where-l->where);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(l->where, p->where-l->where);
p->where = l->where;
if(USE_MMAP)
munmap(l, sizeof(level_list));
p->size = p->left = SUPERBLOCK_SIZE;
p->levels = NULL;
- VALGRIND_MAKE_MEM_NOACCESS(p->where, SUPERBLOCK_SIZE);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(p->where, SUPERBLOCK_SIZE);
return p;
}
level_list *l = p->levels;
p->levels = l->next;
VALGRIND_DESTROY_MEMPOOL(l->where);
- VALGRIND_MAKE_MEM_NOACCESS(l->where, p->where-l->where);
+ (void) VALGRIND_MAKE_MEM_NOACCESS(l->where, p->where-l->where);
p->where = l->where;
if (use_mmap)
munmap(l, sizeof(level_list));
// User block, marked as undefined
{
int undef_user_int = 0;
- VALGRIND_MAKE_MEM_UNDEFINED(&undef_user_int, sizeof(int));
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&undef_user_int, sizeof(int));
fprintf(stderr, "\nUndef 8 of 8 (MAKE_MEM_UNDEFINED)\n");
x += (undef_user_int == 0x12345678 ? 16 : 27);
}
{
int* ptr_to_3_undef_ints = calloc(3, sizeof(int));
int* ptr_to_middle = (int*)((long)ptr_to_3_undef_ints + 6);
- VALGRIND_MAKE_MEM_UNDEFINED(ptr_to_3_undef_ints, 6);
- VALGRIND_MAKE_MEM_UNDEFINED(ptr_to_middle, 6);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(ptr_to_3_undef_ints, 6);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(ptr_to_middle, 6);
fprintf(stderr, "\nUndef 6 of 8 (32 bit undef, unaligned, strange, #1)\n");
y += (*(ptr_to_3_undef_ints + 0) == 0x12345678 ? 16 : 27);
fprintf(stderr, "\nUndef 7 of 8 (32 bit undef, unaligned, strange, #2)\n");
/* Make inbuf[10] be undefined, so as to check that this source
eventually shows up in various places. */
- VALGRIND_MAKE_MEM_UNDEFINED(&inbuf[10], sizeof(char));
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&inbuf[10], sizeof(char));
if (inbuf[10] == 11) vex_printf("foo\n"); else vex_printf("bar\n");
arr[i][j] = (double)(i * j);
if (i == nArr/2 && j == nArr/2) {
unsigned char* p = (unsigned char*)&arr[i][j];
- VALGRIND_MAKE_MEM_UNDEFINED(p, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(p, 1);
}
}
}
perror("trap 4 failed");
else {
munmap(map, 256*1024);
- VALGRIND_MAKE_MEM_DEFINED(map, 256*1024); /* great big fat lie */
+ (void)VALGRIND_MAKE_MEM_DEFINED(map, 256*1024); /* great big fat lie */
}
VALGRIND_DO_LEAK_CHECK;
if (ret != -1 || errno != EINTR) {
fprintf(stderr, "FAILED: expected nanosleep to be interrupted\n");
} else {
- VALGRIND_CHECK_VALUE_IS_DEFINED(rem);
+ (void) VALGRIND_CHECK_VALUE_IS_DEFINED(rem);
fprintf(stderr, "PASSED\n"); /* assuming CHECK_VALUE_IS_DEFINED doesn't print anything */
}
doit(argc, argv); // with default value of our argument.
- VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 3");
+ (void) VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 3");
doit(argc, argv);
- VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 2");
+ (void) VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 2");
doit(argc, argv);
- VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 1");
+ (void) VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 1");
doit(argc, argv);
- VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 0");
+ (void) VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 0");
doit(argc, argv);
return 0;
U8 mask = 0;
U8 shres;
U8 res = 0xffffffffffffffffULL, res2;
- VALGRIND_MAKE_MEM_UNDEFINED(&res, 8);
+ (void)VALGRIND_MAKE_MEM_UNDEFINED(&res, 8);
assert(1 == size || 2 == size || 4 == size || 8 == size);
for (i = 0; i < size; i++) {
U1 make_defined ( U1 x )
{
volatile U1 xx = x;
- VALGRIND_MAKE_MEM_DEFINED(&xx, 1);
+ (void)VALGRIND_MAKE_MEM_DEFINED(&xx, 1);
return xx;
}
U8 mask = 0;
U8 shres;
U8 res = 0xffffffffffffffffULL, res2;
- VALGRIND_MAKE_MEM_UNDEFINED(&res, 8);
+ (void)VALGRIND_MAKE_MEM_UNDEFINED(&res, 8);
assert(1 == size || 2 == size || 4 == size || 8 == size);
for (i = 0; i < size; i++) {
//
// which is useful for testing below.
undefA = calloc(1, 256); // one for each possible undefinedness value
- VALGRIND_MAKE_MEM_UNDEFINED(undefA, 256);
+ (void)VALGRIND_MAKE_MEM_UNDEFINED(undefA, 256);
for (i = 0; i < 256; i++) {
undefA[i] &= i;
}
/* the output of build() into a variable of type 'Ty'. */ \
U8 tmpDef = tmp; \
ITy undefN_ITyDef = undefN_ITy; \
- VALGRIND_MAKE_MEM_DEFINED(&tmpDef, 8 ); \
- VALGRIND_MAKE_MEM_DEFINED(&undefN_ITyDef, NNN); \
+ (void)VALGRIND_MAKE_MEM_DEFINED(&tmpDef, 8 ); \
+ (void)VALGRIND_MAKE_MEM_DEFINED(&undefN_ITyDef, NNN); \
assert(tmpDef == (U8)undefN_ITyDef); \
} \
\
{
size_t size = def_size;
- VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
p = malloc(size);
}
- VALGRIND_MAKE_MEM_UNDEFINED(&p, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&p, 1);
new_p = realloc(p, def_size);
- VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
new_p = realloc(new_p, def_size);
- VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&new_p, 1);
free (new_p);
{
size_t nmemb = 1;
- VALGRIND_MAKE_MEM_UNDEFINED(&nmemb, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&nmemb, 1);
new_p = calloc(nmemb, def_size);
free (new_p);
}
#if 0
{
size_t alignment = 1;
- VALGRIND_MAKE_MEM_UNDEFINED(&alignment, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&alignment, 1);
new_p = memalign(alignment, def_size);
free(new_p);
}
{
size_t nmemb = 16;
size_t size = def_size;
- VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
new_p = memalign(nmemb, size);
free(new_p);
}
{
size_t size = def_size;
- VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
+ (void) VALGRIND_MAKE_MEM_UNDEFINED(&size, 1);
new_p = valloc(size);
free (new_p);
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}
char saved = *a;
assert(undefp);
*a = *undefp;
- VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
+ (void) VALGRIND_CHECK_MEM_IS_DEFINED(a, 1);
*a = saved;
free(undefp);
}