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/hg_errors.c b/helgrind/hg_errors.c
index 1d7d50e..527671c 100644
--- a/helgrind/hg_errors.c
+++ b/helgrind/hg_errors.c
@@ -77,7 +77,7 @@
       tl_assert(string_table);
    }
    if (VG_(lookupFM)( string_table,
-                      NULL, (Word*)&copy, (Word)str )) {
+                      NULL, (UWord*)&copy, (UWord)str )) {
       tl_assert(copy);
       if (0) VG_(printf)("string_table_strdup: %p -> %p\n", str, copy );
       return copy;
@@ -165,7 +165,7 @@
                                    HG_(free), lock_unique_cmp );
       tl_assert(map_LockN_to_P);
    }
-   if (!VG_(lookupFM)( map_LockN_to_P, NULL, (Word*)&lkp, (Word)lkn)) {
+   if (!VG_(lookupFM)( map_LockN_to_P, NULL, (UWord*)&lkp, (UWord)lkn)) {
       lkp = HG_(zalloc)( "hg.mLPfLN.2", sizeof(Lock) );
       *lkp = *lkn;
       lkp->admin_next = NULL;
@@ -178,7 +178,7 @@
       lkp->heldBy = NULL;
       lkp->acquired_at = NULL;
       lkp->hbso = NULL;
-      VG_(addToFM)( map_LockN_to_P, (Word)lkp, (Word)lkp );
+      VG_(addToFM)( map_LockN_to_P, (UWord)lkp, (UWord)lkp );
    }
    tl_assert( HG_(is_sane_LockP)(lkp) );
    return lkp;
@@ -739,7 +739,7 @@
 /* Do a printf-style operation on either the XML or normal output
    channel, depending on the setting of VG_(clo_xml).
 */
-static void emit_WRK ( HChar* format, va_list vargs )
+static void emit_WRK ( const HChar* format, va_list vargs )
 {
    if (VG_(clo_xml)) {
       VG_(vprintf_xml)(format, vargs);
@@ -747,8 +747,8 @@
       VG_(vmessage)(Vg_UserMsg, format, vargs);
    }
 }
-static void emit ( HChar* format, ... ) PRINTF_CHECK(1, 2);
-static void emit ( HChar* format, ... )
+static void emit ( const HChar* format, ... ) PRINTF_CHECK(1, 2);
+static void emit ( const HChar* format, ... )
 {
    va_list vargs;
    va_start(vargs, format);
@@ -1182,7 +1182,7 @@
 
    case XE_Race: {
       Addr      err_ga;
-      HChar*    what;
+      const HChar* what;
       Int       szB;
       what      = xe->XE.Race.isWrite ? "write" : "read";
       szB       = xe->XE.Race.szB;
@@ -1333,7 +1333,7 @@
    } /* switch (VG_(get_error_kind)(err)) */
 }
 
-Char* HG_(get_error_name) ( Error* err )
+HChar* HG_(get_error_name) ( Error* err )
 {
    switch (VG_(get_error_kind)(err)) {
       case XE_Race:           return "Race";