|
From: <sv...@va...> - 2007-12-02 02:05:26
|
Author: sewardj
Date: 2007-12-02 02:05:23 +0000 (Sun, 02 Dec 2007)
New Revision: 7263
Log:
Wibble.
Modified:
trunk/helgrind/hg_main.c
trunk/helgrind/hg_wordfm.c
Modified: trunk/helgrind/hg_main.c
===================================================================
--- trunk/helgrind/hg_main.c 2007-12-02 02:01:09 UTC (rev 7262)
+++ trunk/helgrind/hg_main.c 2007-12-02 02:05:23 UTC (rev 7263)
@@ -66,13 +66,14 @@
worthwhile performance benefits over -O.
*/
+// FIXME catch sync signals (SEGV, basically) and unlock BHL,
+// if held. Otherwise a LOCK-prefixed insn which segfaults
+// gets Helgrind into a total muddle as the BHL will not be
+// released after the insn.
+
// FIXME what is supposed to happen to locks in memory which
// is relocated as a result of client realloc?
-// FIXME some kind of ownership recycling problem in
-// init_thread_specific_state() for programs which use the same thread
-// slot more than once?
-
// FIXME put referencing ThreadId into Thread and get
// rid of the slow reverse mapping function.
Modified: trunk/helgrind/hg_wordfm.c
===================================================================
--- trunk/helgrind/hg_wordfm.c 2007-12-02 02:01:09 UTC (rev 7262)
+++ trunk/helgrind/hg_wordfm.c 2007-12-02 02:05:23 UTC (rev 7263)
@@ -386,7 +386,7 @@
while (True) {
if (t == NULL) return NULL;
cmpres = kCmp(t->key, k);
- if (cmpres > 0) t = t->child[0]; else
+ if (cmpres > 0) t = t->child[0]; else
if (cmpres < 0) t = t->child[1]; else
return t;
}
@@ -399,7 +399,7 @@
cmpres = ((Word)t->key) - ((Word)k);
if (cmpres == 0) return t; /* unlikely ==> predictable */
cmpresU = (UWord)cmpres;
- cmpresU >>=/*unsigned*/ (8 * sizeof(cmpres) - 1);
+ cmpresU >>=/*unsigned*/ (8 * sizeof(cmpresU) - 1);
t = t->child[cmpresU];
}
}
|