if (r)
            strcat (s, r->name);
          else
-           sprintf (s, "%s$%d", s, value);
+           sprintf (s, "%s$%lu", s, value);
          break;
        case e_addr:
          /* use assembler's symbol table to find symbol */
                        */
          /* If not a symbol, fall thru to IMMED */
        case e_immed:
-         sprintf (s, "%s0x%x", s, value);
+         sprintf (s, "%s0x%lx", s, value);
          break;
        default:
          return 0;             /* error; invalid field spec */
 itbl_get_field (char **S)
 {
   static char n[128];
-  char *p, *ps, *s;
+  char *s;
   int len;
 
   s = *S;
          eval = apply_range (e->value, e->range);
          val &= apply_range (0xffffffff, e->range);
        }
-      else if (r->sbit == e->range.sbit && r->ebit == e->range.ebit
-              || e->range.sbit == 0 && e->range.ebit == 0)
+      else if ((r->sbit == e->range.sbit && r->ebit == e->range.ebit)
+              || (e->range.sbit == 0 && e->range.ebit == 0))
        {
          eval = apply_range (e->value, *r);
          val = apply_range (val, *r);