Author: sewardj
Date: 2007-11-06 22:47:45 +0000 (Tue, 06 Nov 2007)
New Revision: 7105
Log:
Build at -O2, and insert lots of ugly casts to stop gcc complaining
about violations of strict aliasing rules. Whether these casts are
really a reasonable "solution" is another matter.
Modified:
branches/THRCHECK/thrcheck/Makefile.am
branches/THRCHECK/thrcheck/tc_main.c
branches/THRCHECK/thrcheck/tc_wordset.c
Modified: branches/THRCHECK/thrcheck/Makefile.am
===================================================================
--- branches/THRCHECK/thrcheck/Makefile.am 2007-11-06 22:00:35 UTC (rev
7104)
+++ branches/THRCHECK/thrcheck/Makefile.am 2007-11-06 22:47:45 UTC (rev
7105)
@@ -23,8 +23,7 @@
VGPRELOAD_THRCHECK_SOURCES_COMMON = tc_intercepts.c
vgpreload_thrcheck_x86_linux_so_SOURCES =
$(VGPRELOAD_THRCHECK_SOURCES_COMMON)
-vgpreload_thrcheck_x86_linux_so_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) \
- -fno-omit-frame-pointer
+vgpreload_thrcheck_x86_linux_so_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX) -O -g
-fno-omit-frame-pointer
vgpreload_thrcheck_x86_linux_so_CFLAGS = $(AM_CFLAGS_X86_LINUX)
$(AM_CFLAGS_PIC)
vgpreload_thrcheck_x86_linux_so_DEPENDENCIES = $(LIBREPLACEMALLOC_X86_LINUX)
vgpreload_thrcheck_x86_linux_so_LDFLAGS = \
@@ -32,7 +31,7 @@
$(LIBREPLACEMALLOC_LDFLAGS_X86_LINUX)
vgpreload_thrcheck_amd64_linux_so_SOURCES =
$(VGPRELOAD_THRCHECK_SOURCES_COMMON)
-vgpreload_thrcheck_amd64_linux_so_CPPFLAGS = $(AM_CPPFLAGS_AMD64_LINUX)
+vgpreload_thrcheck_amd64_linux_so_CPPFLAGS = $(AM_CPPFLAGS_AMD64_LINUX) -O
-g
vgpreload_thrcheck_amd64_linux_so_CFLAGS = $(AM_CFLAGS_AMD64_LINUX)
$(AM_CFLAGS_PIC)
vgpreload_thrcheck_amd64_linux_so_DEPENDENCIES =
$(LIBREPLACEMALLOC_AMD64_LINUX)
vgpreload_thrcheck_amd64_linux_so_LDFLAGS = \
@@ -40,7 +39,7 @@
$(LIBREPLACEMALLOC_LDFLAGS_AMD64_LINUX)
vgpreload_thrcheck_ppc32_linux_so_SOURCES =
$(VGPRELOAD_THRCHECK_SOURCES_COMMON)
-vgpreload_thrcheck_ppc32_linux_so_CPPFLAGS = $(AM_CPPFLAGS_PPC32_LINUX)
+vgpreload_thrcheck_ppc32_linux_so_CPPFLAGS = $(AM_CPPFLAGS_PPC32_LINUX) -O
-g
vgpreload_thrcheck_ppc32_linux_so_CFLAGS = $(AM_CFLAGS_PPC32_LINUX)
$(AM_CFLAGS_PIC)
vgpreload_thrcheck_ppc32_linux_so_DEPENDENCIES =
$(LIBREPLACEMALLOC_PPC32_LINUX)
vgpreload_thrcheck_ppc32_linux_so_LDFLAGS = \
@@ -48,7 +47,7 @@
$(LIBREPLACEMALLOC_LDFLAGS_PPC32_LINUX)
vgpreload_thrcheck_ppc64_linux_so_SOURCES =
$(VGPRELOAD_THRCHECK_SOURCES_COMMON)
-vgpreload_thrcheck_ppc64_linux_so_CPPFLAGS = $(AM_CPPFLAGS_PPC64_LINUX)
+vgpreload_thrcheck_ppc64_linux_so_CPPFLAGS = $(AM_CPPFLAGS_PPC64_LINUX) -O
-g
vgpreload_thrcheck_ppc64_linux_so_CFLAGS = $(AM_CFLAGS_PPC64_LINUX)
$(AM_CFLAGS_PIC)
vgpreload_thrcheck_ppc64_linux_so_DEPENDENCIES =
$(LIBREPLACEMALLOC_PPC64_LINUX)
vgpreload_thrcheck_ppc64_linux_so_LDFLAGS = \
@@ -56,7 +55,7 @@
$(LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX)
vgpreload_thrcheck_ppc32_aix5_so_SOURCES =
$(VGPRELOAD_THRCHECK_SOURCES_COMMON)
-vgpreload_thrcheck_ppc32_aix5_so_CPPFLAGS = $(AM_CPPFLAGS_PPC32_AIX5)
+vgpreload_thrcheck_ppc32_aix5_so_CPPFLAGS = $(AM_CPPFLAGS_PPC32_AIX5) -O -g
vgpreload_thrcheck_ppc32_aix5_so_CFLAGS = $(AM_CFLAGS_PPC32_AIX5)
$(AM_CFLAGS_PIC)
vgpreload_thrcheck_ppc32_aix5_so_DEPENDENCIES = $(LIBREPLACEMALLOC_PPC32_AIX5)
vgpreload_thrcheck_ppc32_aix5_so_LDFLAGS = \
@@ -64,7 +63,7 @@
$(LIBREPLACEMALLOC_LDFLAGS_PPC32_AIX5)
vgpreload_thrcheck_ppc64_aix5_so_SOURCES =
$(VGPRELOAD_THRCHECK_SOURCES_COMMON)
-vgpreload_thrcheck_ppc64_aix5_so_CPPFLAGS = $(AM_CPPFLAGS_PPC64_AIX5)
+vgpreload_thrcheck_ppc64_aix5_so_CPPFLAGS = $(AM_CPPFLAGS_PPC64_AIX5) -O -g
vgpreload_thrcheck_ppc64_aix5_so_CFLAGS = $(AM_CFLAGS_PPC64_AIX5)
$(AM_CFLAGS_PIC)
vgpreload_thrcheck_ppc64_aix5_so_DEPENDENCIES = $(LIBREPLACEMALLOC_PPC64_AIX5)
vgpreload_thrcheck_ppc64_aix5_so_LDFLAGS = \
@@ -75,42 +74,42 @@
thrcheck_x86_linux_SOURCES = $(THRCHECK_SOURCES_COMMON)
thrcheck_x86_linux_CPPFLAGS = $(AM_CPPFLAGS_X86_LINUX)
-thrcheck_x86_linux_CFLAGS = $(AM_CFLAGS_X86_LINUX) -fomit-frame-pointer
+thrcheck_x86_linux_CFLAGS = $(AM_CFLAGS_X86_LINUX) -O2
thrcheck_x86_linux_DEPENDENCIES = $(COREGRIND_LIBS_X86_LINUX)
thrcheck_x86_linux_LDADD = $(TOOL_LDADD_X86_LINUX)
thrcheck_x86_linux_LDFLAGS = $(TOOL_LDFLAGS_X86_LINUX)
thrcheck_amd64_linux_SOURCES = $(THRCHECK_SOURCES_COMMON)
thrcheck_amd64_linux_CPPFLAGS = $(AM_CPPFLAGS_AMD64_LINUX)
-thrcheck_amd64_linux_CFLAGS = $(AM_CFLAGS_AMD64_LINUX)
+thrcheck_amd64_linux_CFLAGS = $(AM_CFLAGS_AMD64_LINUX) -O2
thrcheck_amd64_linux_DEPENDENCIES = $(COREGRIND_LIBS_AMD64_LINUX)
thrcheck_amd64_linux_LDADD = $(TOOL_LDADD_AMD64_LINUX)
thrcheck_amd64_linux_LDFLAGS = $(TOOL_LDFLAGS_AMD64_LINUX)
thrcheck_ppc32_linux_SOURCES = $(THRCHECK_SOURCES_COMMON)
thrcheck_ppc32_linux_CPPFLAGS = $(AM_CPPFLAGS_PPC32_LINUX)
-thrcheck_ppc32_linux_CFLAGS = $(AM_CFLAGS_PPC32_LINUX)
+thrcheck_ppc32_linux_CFLAGS = $(AM_CFLAGS_PPC32_LINUX) -O2
thrcheck_ppc32_linux_DEPENDENCIES = $(COREGRIND_LIBS_PPC32_LINUX)
thrcheck_ppc32_linux_LDADD = $(TOOL_LDADD_PPC32_LINUX)
thrcheck_ppc32_linux_LDFLAGS = $(TOOL_LDFLAGS_PPC32_LINUX)
thrcheck_ppc64_linux_SOURCES = $(THRCHECK_SOURCES_COMMON)
thrcheck_ppc64_linux_CPPFLAGS = $(AM_CPPFLAGS_PPC64_LINUX)
-thrcheck_ppc64_linux_CFLAGS = $(AM_CFLAGS_PPC64_LINUX)
+thrcheck_ppc64_linux_CFLAGS = $(AM_CFLAGS_PPC64_LINUX) -O2
thrcheck_ppc64_linux_DEPENDENCIES = $(COREGRIND_LIBS_PPC64_LINUX)
thrcheck_ppc64_linux_LDADD = $(TOOL_LDADD_PPC64_LINUX)
thrcheck_ppc64_linux_LDFLAGS = $(TOOL_LDFLAGS_PPC64_LINUX)
thrcheck_ppc32_aix5_SOURCES = $(THRCHECK_SOURCES_COMMON)
thrcheck_ppc32_aix5_CPPFLAGS = $(AM_CPPFLAGS_PPC32_AIX5)
-thrcheck_ppc32_aix5_CFLAGS = $(AM_CFLAGS_PPC32_AIX5)
+thrcheck_ppc32_aix5_CFLAGS = $(AM_CFLAGS_PPC32_AIX5) -O2
thrcheck_ppc32_aix5_DEPENDENCIES = $(COREGRIND_LIBS_PPC32_AIX5)
thrcheck_ppc32_aix5_LDADD = $(TOOL_LDADD_PPC32_AIX5)
thrcheck_ppc32_aix5_LDFLAGS = $(TOOL_LDFLAGS_PPC32_AIX5)
thrcheck_ppc64_aix5_SOURCES = $(THRCHECK_SOURCES_COMMON)
thrcheck_ppc64_aix5_CPPFLAGS = $(AM_CPPFLAGS_PPC64_AIX5)
-thrcheck_ppc64_aix5_CFLAGS = $(AM_CFLAGS_PPC64_AIX5)
+thrcheck_ppc64_aix5_CFLAGS = $(AM_CFLAGS_PPC64_AIX5) -O2
thrcheck_ppc64_aix5_DEPENDENCIES = $(COREGRIND_LIBS_PPC64_AIX5)
thrcheck_ppc64_aix5_LDADD = $(TOOL_LDADD_PPC64_AIX5)
thrcheck_ppc64_aix5_LDFLAGS = $(TOOL_LDFLAGS_PPC64_AIX5)
Modified: branches/THRCHECK/thrcheck/tc_main.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_main.c 2007-11-06 22:00:35 UTC (rev
7104)
+++ branches/THRCHECK/thrcheck/tc_main.c 2007-11-06 22:47:45 UTC (rev
7105)
@@ -59,6 +59,13 @@
/*--- ---*/
/*----------------------------------------------------------------*/
+/* Note there are a whole bunch of ugly double casts of the form
+ (Word*)(void*)&p. These placate gcc at -O2. The obvious form
+ (Word*)&p causes gcc to complain that 'dereferencing a type-punned
+ pointer ill break strict-aliasing rules'. It stops complaining
+ when the intermediate void* type is inserted. Is this a reasonable
+ "fix"? I don't know. */
+
// FIXME what is supposed to happen to locks in memory which
// is relocated as a result of client realloc?
@@ -623,7 +630,7 @@
Thread* thr;
Word count;
TC_(initIterBag)( bag );
- while (TC_(nextIterBag)( bag, (Word*)&thr, &count )) {
+ while (TC_(nextIterBag)( bag, (Word*)(void*)&thr, &count )) {
if (count < 1) return False;
if (!is_sane_Thread(thr)) return False;
}
@@ -818,7 +825,7 @@
}
/* for each thread that holds this lock do ... */
TC_(initIterBag)( lk->heldBy );
- while (TC_(nextIterBag)( lk->heldBy, (Word*)&thr, NULL )) {
+ while (TC_(nextIterBag)( lk->heldBy, (Word*)(void*)&thr, NULL )) {
tl_assert(is_sane_Thread(thr));
tl_assert(TC_(elemWS)( univ_lsets,
thr->locksetA, (Word)lk ));
@@ -1100,7 +1107,7 @@
Word count;
VG_(printf)(" { ");
TC_(initIterBag)( lk->heldBy );
- while (TC_(nextIterBag)( lk->heldBy, (Word*)&thr, &count ))
+ while (TC_(nextIterBag)( lk->heldBy, (Word*)(void*)&thr, &count ))
VG_(printf)("%lu:%p ", count, thr);
TC_(doneIterBag)( lk->heldBy );
VG_(printf)("}");
@@ -1134,7 +1141,8 @@
space(d); VG_(printf)("map_locks (%d entries) {\n",
(Int)TC_(sizeFM)( map_locks ));
TC_(initIterFM)( map_locks );
- while (TC_(nextIterFM)( map_locks, (Word*)&gla, (Word*)&lk )) {
+ while (TC_(nextIterFM)( map_locks, (Word*)(void*)&gla,
+ (Word*)(void*)&lk )) {
space(d+3);
VG_(printf)("guest %p -> Lock %p\n", gla, lk);
}
@@ -1181,7 +1189,8 @@
space(d); VG_(printf)("map_segments (%d entries) {\n",
(Int)TC_(sizeFM)( map_segments ));
TC_(initIterFM)( map_segments );
- while (TC_(nextIterFM)( map_segments, (Word*)&segid, (Word*)&seg )) {
+ while (TC_(nextIterFM)( map_segments, (Word*)(void*)&segid,
+ (Word*)(void*)&seg )) {
space(d+3);
VG_(printf)("segid 0x%x -> Segment %p\n", (UInt)segid, seg);
}
@@ -1300,7 +1309,8 @@
SecMap* sm;
space(d); VG_(printf)("map_shmem_ShR_and_ShM_only {\n");
TC_(initIterFM)( map_shmem );
- while (TC_(nextIterFM)( map_shmem, (Word*)&ga, (Word*)&sm )) {
+ while (TC_(nextIterFM)( map_shmem, (Word*)(void*)&ga,
+ (Word*)(void*)&sm )) {
pp_SecMap_shared( d+3, sm, ga );
}
TC_(doneIterFM) ( map_shmem );
@@ -1511,7 +1521,8 @@
Bool found;
Lock* oldlock = NULL;
tl_assert(is_sane_ThreadId(tid));
- found = TC_(lookupFM)( map_locks, NULL, (Word*)&oldlock, (Word)ga );
+ found = TC_(lookupFM)( map_locks,
+ NULL, (Word*)(void*)&oldlock, (Word)ga );
if (!found) {
Lock* lock = mk_LockN(lkk, ga);
lock->appeared_at = VG_(record_ExeContext)( tid, 0 );
@@ -1535,7 +1546,7 @@
{
Bool found;
Lock* lk = NULL;
- found = TC_(lookupFM)( map_locks, NULL, (Word*)&lk, (Word)ga );
+ found = TC_(lookupFM)( map_locks, NULL, (Word*)(void*)&lk, (Word)ga );
tl_assert(found ? lk != NULL : lk == NULL);
if (found) {
// check the relevant secondary map has .mbHasLocks?
@@ -1548,7 +1559,8 @@
{
Addr ga2 = 0;
Lock* lk = NULL;
- TC_(delFromFM)( map_locks, (Word*)&ga2, (Word*)&lk, (Word)ga );
+ TC_(delFromFM)( map_locks,
+ (Word*)(void*)&ga2, (Word*)(void*)&lk, (Word)ga );
/* delFromFM produces the val which is being deleted, if it is
found. So assert it is non-null; that in effect asserts that we
are deleting a (ga, Lock) pair which actually exists. */
@@ -1571,7 +1583,8 @@
Bool found;
Segment* seg = NULL;
tl_assert( is_sane_SegmentID(segid) );
- found = TC_(lookupFM)( map_segments, NULL, (Word*)&seg, (Word)segid );
+ found = TC_(lookupFM)( map_segments,
+ NULL, (Word*)(void*)&seg, (Word)segid );
tl_assert(found);
tl_assert(seg != NULL);
return seg;
@@ -1582,7 +1595,8 @@
Bool found;
Segment* seg = NULL;
tl_assert( is_sane_SegmentID(segid) );
- found = TC_(lookupFM)( map_segments, NULL, (Word*)&seg, (Word)segid );
+ found = TC_(lookupFM)( map_segments,
+ NULL, (Word*)(void*)&seg, (Word)segid );
if (!found) tl_assert(seg == NULL);
return seg;
}
@@ -2332,7 +2346,7 @@
SecMap* sm = NULL;
Addr gaKey = shmem__round_to_SecMap_base(ga);
if (TC_(lookupFM)( map_shmem,
- NULL/*keyP*/, (Word*)&sm, (Word)gaKey )) {
+ NULL/*keyP*/, (Word*)(void*)&sm, (Word)gaKey )) {
/* Found; address of SecMap is in sm */
tl_assert(sm);
} else {
@@ -2353,7 +2367,8 @@
{
SecMap* sm;
Addr aKey = shmem__round_to_SecMap_base(a);
- if (TC_(lookupFM)( map_shmem, NULL/*keyP*/, (Word*)&sm, (Word)aKey )) {
+ if (TC_(lookupFM)( map_shmem,
+ NULL/*keyP*/, (Word*)(void*)&sm, (Word)aKey )) {
/* Found */
return sm->mbHasLocks;
} else {
@@ -2366,7 +2381,8 @@
SecMap* sm;
Addr aKey = shmem__round_to_SecMap_base(a);
tl_assert(b == False || b == True);
- if (TC_(lookupFM)( map_shmem, NULL/*keyP*/, (Word*)&sm, (Word)aKey )) {
+ if (TC_(lookupFM)( map_shmem,
+ NULL/*keyP*/, (Word*)(void*)&sm, (Word)aKey )) {
/* Found; address of SecMap is in sm */
} else {
/* create a new one */
@@ -2382,7 +2398,8 @@
SecMap* sm;
Addr aKey = shmem__round_to_SecMap_base(a);
tl_assert(b == False || b == True);
- if (TC_(lookupFM)( map_shmem, NULL/*keyP*/, (Word*)&sm, (Word)aKey )) {
+ if (TC_(lookupFM)( map_shmem,
+ NULL/*keyP*/, (Word*)(void*)&sm, (Word)aKey )) {
/* Found; address of SecMap is in sm */
} else {
/* create a new one */
@@ -2541,7 +2558,8 @@
// for each entry (gla, lk) in map_locks
// gla == lk->guest_addr
TC_(initIterFM)( map_locks );
- while (TC_(nextIterFM)( map_locks, (Word*)&gla, (Word*)&lk )) {
+ while (TC_(nextIterFM)( map_locks,
+ (Word*)(void*)&gla, (Word*)(void*)&lk )) {
if (lk->guestaddr != gla) BAD("2");
}
TC_(doneIterFM)( map_locks );
@@ -2563,7 +2581,8 @@
Thread* thr;
Word count;
TC_(initIterBag)( lk->heldBy );
- while (TC_(nextIterBag)( lk->heldBy, (Word*)&thr, &count )) {
+ while (TC_(nextIterBag)( lk->heldBy,
+ (Word*)(void*)&thr, &count )) {
// is_sane_LockN above ensures these
tl_assert(count >= 1);
tl_assert(is_sane_Thread(thr));
@@ -2653,7 +2672,8 @@
Addr* valid_tags;
TC_(initIterFM)( map_shmem );
// for sm in SecMaps {
- while (TC_(nextIterFM)( map_shmem, (Word*)&smga, (Word*)&sm )) {
+ while (TC_(nextIterFM)( map_shmem,
+ (Word*)(void*)&smga, (Word*)(void*)&sm )) {
SecMapIter itr;
UInt* w32p;
Bool mbHasShared = False;
@@ -2923,7 +2943,8 @@
{
ExeContext* ec_hint = NULL;
if (ga_to_lastlock != NULL
- && TC_(lookupFM)(ga_to_lastlock, NULL, (Word*)&ec_hint, ga)) {
+ && TC_(lookupFM)(ga_to_lastlock,
+ NULL, (Word*)(void*)&ec_hint, ga)) {
tl_assert(ec_hint != NULL);
return ec_hint;
} else {
@@ -4920,7 +4941,8 @@
/* FIXME: don't iterate over the complete lock set */
TC_(initIterFM)( map_locks );
- while (TC_(nextIterFM)( map_locks, (Word*)&gla, (Word*)&lk )) {
+ while (TC_(nextIterFM)( map_locks,
+ (Word*)(void*)&gla, (Word*)(void*)&lk )) {
tl_assert(is_sane_LockN(lk));
if (gla < firstA || gla > lastA)
continue;
@@ -4968,7 +4990,8 @@
UInt* w32p;
TC_(initIterFM)( map_shmem );
- while (TC_(nextIterFM)( map_shmem, (Word*)&ga, (Word*)&sm )) {
+ while (TC_(nextIterFM)( map_shmem,
+ (Word*)(void*)&ga, (Word*)(void*)&sm )) {
tl_assert(sm);
stats_SMs++;
/* Skip this SecMap if the summary bit indicates it is safe to
@@ -5631,7 +5654,8 @@
stats_SMs = stats_SMs_scanned = stats_reExcls = 0;
TC_(initIterFM)( map_shmem );
- while (TC_(nextIterFM)( map_shmem, (Word*)&ga, (Word*)&sm )) {
+ while (TC_(nextIterFM)( map_shmem,
+ (Word*)(void*)&ga, (Word*)(void*)&sm )) {
SecMapIter itr;
UInt* w32p;
tl_assert(sm);
@@ -6126,7 +6150,8 @@
edge back to it. */
signalling_seg = NULL;
found = TC_(lookupFM)( map_cond_to_Segment,
- NULL, (Word*)&signalling_seg, (Word)cond );
+ NULL, (Word*)(void*)&signalling_seg,
+ (Word)cond );
if (found) {
tl_assert(is_sane_Segment(signalling_seg));
tl_assert(new_seg->prev);
@@ -6321,7 +6346,7 @@
tl_assert(seg);
map_sem_to_Segment_stack_INIT();
if (TC_(lookupFM)( map_sem_to_Segment_stack,
- NULL, (Word*)&xa, (Word)sem )) {
+ NULL, (Word*)(void*)&xa, (Word)sem )) {
tl_assert(xa);
VG_(addToXA)( xa, &seg );
} else {
@@ -6336,7 +6361,7 @@
Segment* seg;
map_sem_to_Segment_stack_INIT();
if (TC_(lookupFM)( map_sem_to_Segment_stack,
- NULL, (Word*)&xa, (Word)sem )) {
+ NULL, (Word*)(void*)&xa, (Word)sem )) {
/* xa is the stack for this semaphore. */
Word sz = VG_(sizeXA)( xa );
tl_assert(sz >= 0);
@@ -6544,7 +6569,8 @@
TC_(initIterFM)( laog );
me = NULL;
links = NULL;
- while (TC_(nextIterFM)( laog, (Word*)&me, (Word*)&links )) {
+ while (TC_(nextIterFM)( laog, (Word*)(void*)&me,
+ (Word*)(void*)&links )) {
tl_assert(me);
tl_assert(links);
VG_(printf)(" node %p:\n", me);
@@ -6581,7 +6607,7 @@
/* Update the out edges for src */
keyW = 0;
links = NULL;
- if (TC_(lookupFM)( laog, &keyW, (Word*)&links, (Word)src )) {
+ if (TC_(lookupFM)( laog, &keyW, (Word*)(void*)&links, (Word)src )) {
WordSetID outs_new;
tl_assert(links);
tl_assert(keyW == (Word)src);
@@ -6597,7 +6623,7 @@
/* Update the in edges for dst */
keyW = 0;
links = NULL;
- if (TC_(lookupFM)( laog, &keyW, (Word*)&links, (Word)dst )) {
+ if (TC_(lookupFM)( laog, &keyW, (Word*)(void*)&links, (Word)dst )) {
WordSetID inns_new;
tl_assert(links);
tl_assert(keyW == (Word)dst);
@@ -6648,7 +6674,7 @@
/* Update the out edges for src */
keyW = 0;
links = NULL;
- if (TC_(lookupFM)( laog, &keyW, (Word*)&links, (Word)src )) {
+ if (TC_(lookupFM)( laog, &keyW, (Word*)(void*)&links, (Word)src )) {
tl_assert(links);
tl_assert(keyW == (Word)src);
links->outs = TC_(delFromWS)( univ_laog, links->outs, (Word)dst );
@@ -6656,7 +6682,7 @@
/* Update the in edges for dst */
keyW = 0;
links = NULL;
- if (TC_(lookupFM)( laog, &keyW, (Word*)&links, (Word)dst )) {
+ if (TC_(lookupFM)( laog, &keyW, (Word*)(void*)&links, (Word)dst )) {
tl_assert(links);
tl_assert(keyW == (Word)dst);
links->inns = TC_(delFromWS)( univ_laog, links->inns, (Word)src );
@@ -6669,7 +6695,7 @@
LAOGLinks* links;
keyW = 0;
links = NULL;
- if (TC_(lookupFM)( laog, &keyW, (Word*)&links, (Word)lk )) {
+ if (TC_(lookupFM)( laog, &keyW, (Word*)(void*)&links, (Word)lk )) {
tl_assert(links);
tl_assert(keyW == (Word)lk);
return links->outs;
@@ -6684,7 +6710,7 @@
LAOGLinks* links;
keyW = 0;
links = NULL;
- if (TC_(lookupFM)( laog, &keyW, (Word*)&links, (Word)lk )) {
+ if (TC_(lookupFM)( laog, &keyW, (Word*)(void*)&links, (Word)lk )) {
tl_assert(links);
tl_assert(keyW == (Word)lk);
return links->inns;
@@ -6705,7 +6731,8 @@
me = NULL;
links = NULL;
if (0) VG_(printf)("laog sanity check\n");
- while (TC_(nextIterFM)( laog, (Word*)&me, (Word*)&links )) {
+ while (TC_(nextIterFM)( laog, (Word*)(void*)&me,
+ (Word*)(void*)&links )) {
tl_assert(me);
tl_assert(links);
TC_(getPayloadWS)( &ws_words, &ws_size, univ_laog, links->inns );
@@ -6838,7 +6865,8 @@
key.src_ec = NULL;
key.dst_ec = NULL;
found = NULL;
- if (TC_(lookupFM)( laog_exposition, (Word*)&found, NULL, (Word)&key )) {
+ if (TC_(lookupFM)( laog_exposition,
+ (Word*)(void*)&found, NULL, (Word)&key )) {
tl_assert(found != &key);
tl_assert(found->src_ga == key.src_ga);
tl_assert(found->dst_ga == key.dst_ga);
@@ -7463,7 +7491,7 @@
(void*)args[1]);
map_pthread_t_to_Thread_INIT();
found = TC_(lookupFM)( map_pthread_t_to_Thread,
- NULL, (Word*)&thr_q, (Word)args[1] );
+ NULL, (Word*)(void*)&thr_q, (Word)args[1] );
/* Can this fail? It would mean that our pthread_join
wrapper observed a successful join on args[1] yet that
thread never existed (or at least, it never lodged an
@@ -7614,7 +7642,8 @@
string_table = TC_(newFM)( tc_zalloc, tc_free, string_table_cmp );
tl_assert(string_table);
}
- if (TC_(lookupFM)( string_table, NULL, (Word*)©, (Word)str )) {
+ if (TC_(lookupFM)( string_table,
+ NULL, (Word*)(void*)©, (Word)str )) {
tl_assert(copy);
if (0) VG_(printf)("string_table_strdup: %p -> %p\n", str, copy );
return copy;
@@ -7648,7 +7677,7 @@
yaWFM = TC_(newFM)( tc_zalloc, tc_free, lock_unique_cmp );
tl_assert(yaWFM);
}
- if (!TC_(lookupFM)( yaWFM, NULL, (Word*)&lkp, (Word)lkn)) {
+ if (!TC_(lookupFM)( yaWFM, NULL, (Word*)(void*)&lkp, (Word)lkn)) {
lkp = tc_zalloc( sizeof(Lock) );
*lkp = *lkn;
lkp->admin = NULL;
Modified: branches/THRCHECK/thrcheck/tc_wordset.c
===================================================================
--- branches/THRCHECK/thrcheck/tc_wordset.c 2007-11-06 22:00:35 UTC (rev
7104)
+++ branches/THRCHECK/thrcheck/tc_wordset.c 2007-11-06 22:47:45 UTC (rev
7105)
@@ -281,7 +281,8 @@
causes failures on a 64-bit platform. */
tl_assert(wv_new->owner == wsu);
have = TC_(lookupFM)( wsu->vec2ix,
- (Word*)&wv_old, (Word*)&ix_old, (Word)wv_new );
+ (Word*)(void*)&wv_old, (Word*)&ix_old,
+ (Word)wv_new );
if (have) {
tl_assert(wv_old != wv_new);
tl_assert(wv_old);
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers