Fix Char/HChar mixups in helgrind and then some.
Also fix all usages of the wordFM data structure. Once upon a time
wordFM used Words but now it uses UWords.
Likewise for WordBag.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13070 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/helgrind/libhb_core.c b/helgrind/libhb_core.c
index 41636b1..3ae242d 100644
--- a/helgrind/libhb_core.c
+++ b/helgrind/libhb_core.c
@@ -1796,7 +1796,7 @@
 static void scalarts_limitations_fail_NORETURN ( Bool due_to_nThrs )
 {
    if (due_to_nThrs) {
-      HChar* s =
+      const HChar* s =
          "\n"
          "Helgrind: cannot continue, run aborted: too many threads.\n"
          "Sorry.  Helgrind can only handle programs that create\n"
@@ -1804,7 +1804,7 @@
          "\n";
       VG_(umsg)(s, (ULong)(ThrID_MAX_VALID - 1024));
    } else {
-      HChar* s =
+      const HChar* s =
          "\n"
          "Helgrind: cannot continue, run aborted: too many\n"
          "synchronisation events.  Sorry. Helgrind can only handle\n"
@@ -6491,7 +6491,8 @@
    if (XXX2 && a <= XXX2 && XXX2 <= a+szB) return True;
    return False;
 }
-static void trace ( Thr* thr, Addr a, SizeT szB, HChar* s ) {
+static void trace ( Thr* thr, Addr a, SizeT szB, const HChar* s ) 
+{
   SVal sv = zsm_sread08(a);
   VG_(printf)("thr %p (%#lx,%lu) %s: 0x%016llx ", thr,a,szB,s,sv);
   show_thread_state("", thr);