+2020-05-21  Alan Modra  <amodra@gmail.com>
+
+       * atof-generic.c: Replace "if (x) free (x)" with "free (x)"
+       throughout.
+       * config/obj-elf.c: Likewise.
+       * config/tc-aarch64.c: Likewise.
+       * config/tc-arm.c: Likewise.
+       * config/tc-m68k.c: Likewise.
+       * config/tc-nios2.c: Likewise.
+       * config/tc-tic30.c: Likewise.
+       * ecoff.c: Likewise.
+       * read.c: Likewise.
+       * stabs.c: Likewise.
+       * symbols.c: Likewise.
+       * testsuite/gas/all/test-gen.c: Likewise.
+
 2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
 
        * testsuite/gas/riscv/priv-reg-fail-read-only-01.s: Updated.
 
       /* Assert sign of the number we made is '+'.  */
       address_of_generic_floating_point_number->sign = digits_sign_char;
 
-      if (temporary_binary_low)
-       free (temporary_binary_low);
-      if (power_binary_low)
-       free (power_binary_low);
+      free (temporary_binary_low);
+      free (power_binary_low);
       free (digits_binary_low);
     }
   return return_value;
 
     }
   else
     {
-      if (destelf->size != NULL)
-       free (destelf->size);
+      free (destelf->size);
       destelf->size = NULL;
     }
   S_SET_SIZE (dest, S_GET_SIZE (src));
   if (exp.X_op == O_constant)
     {
       S_SET_SIZE (sym, exp.X_add_number);
-      if (symbol_get_obj (sym)->size)
-       {
-         xfree (symbol_get_obj (sym)->size);
-         symbol_get_obj (sym)->size = NULL;
-       }
+      xfree (symbol_get_obj (sym)->size);
+      symbol_get_obj (sym)->size = NULL;
     }
   else
     {
 
   /* Free the allocated the struct aarch64_inst.
      N.B. currently there are very limited number of fix-up types actually use
      this field, so the impact on the performance should be minimal .  */
-  if (fixP->tc_fix_data.inst != NULL)
-    free (fixP->tc_fix_data.inst);
+  free (fixP->tc_fix_data.inst);
 
   return;
 }
     }
   else
     {
-      if (destelf->size != NULL)
-       free (destelf->size);
+      free (destelf->size);
       destelf->size = NULL;
     }
   S_SET_SIZE (dest, S_GET_SIZE (src));
 
 
          hash_delete (arm_reg_hsh, name, FALSE);
          free ((char *) reg->name);
-         if (reg->neon)
-           free (reg->neon);
+         free (reg->neon);
          free (reg);
 
          /* Also locate the all upper case and all lower case versions.
            {
              hash_delete (arm_reg_hsh, nbuf, FALSE);
              free ((char *) reg->name);
-             if (reg->neon)
-               free (reg->neon);
+             free (reg->neon);
              free (reg);
            }
 
            {
              hash_delete (arm_reg_hsh, nbuf, FALSE);
              free ((char *) reg->name);
-             if (reg->neon)
-               free (reg->neon);
+             free (reg->neon);
              free (reg);
            }
 
 
 
   n = mri_control_stack;
   mri_control_stack = n->outer;
-  if (n->top != NULL)
-    free (n->top);
+  free (n->top);
   free (n->next);
   free (n->bottom);
   free (n);
 
 static void
 nios2_free_arg (char **parsed_args, int num ATTRIBUTE_UNUSED, int start)
 {
-  if (parsed_args[start])
-    {
-      free (parsed_args[start]);
-      parsed_args[start] = NULL;
-    }
+  free (parsed_args[start]);
+  parsed_args[start] = NULL;
 }
 
 /* This function swaps the pseudo-op for a real op.  */
 
 
     for (i = 0; i < insn.operands; i++)
       {
-       if (insn.operand_type[i]->immediate.label)
-         free (insn.operand_type[i]->immediate.label);
+       free (insn.operand_type[i]->immediate.label);
        free (insn.operand_type[i]);
       }
   }
 
     as_warn (_("empty symbol name in .def; ignored"));
   else
     {
-      if (coff_sym_name != (char *) NULL)
-       free (coff_sym_name);
-      if (coff_tag != (char *) NULL)
-       free (coff_tag);
+      free (coff_sym_name);
+      free (coff_tag);
 
       coff_sym_name = xstrdup (name);
       coff_type = type_info_init;
 
                  new_length += 100;
                }
 
-             if (tmp_buf)
-               free (tmp_buf);
+             free (tmp_buf);
 
              /* We've "scrubbed" input to the preferred format.  In the
                 process we may have consumed the whole of the remaining
  out:
   if (flag_mri)
     mri_comment_end (stop, stopc);
-  if (name != NULL)
-    free (name);
+  free (name);
   return symbolP;
 }
 
 
   sym = symbol_find_or_make (name);
   c = restore_line_pointer (c);
-  if (alc != NULL)
-    free (alc);
+  free (alc);
 
   if (*input_line_pointer != ',')
     align = 0;
  done:
   if (binfile != NULL)
     fclose (binfile);
-  if (path)
-    free (path);
+  free (path);
 }
 
 /* .include -- include a file at this point.  */
 
 
   colon (sym);
 
-  if (last_file != NULL)
-    free (last_file);
+  free (last_file);
   last_file = xstrdup (file);
 
   free (buf);
 
        *copy++ = TOUPPER (c);
       *copy = '\0';
 
-      if (copy2 != NULL)
-       free (copy2);
+      free (copy2);
       copy = (char *) name;
     }
 
   result = symbol_find_exact_noref (name, noref);
-  if (copy != NULL)
-    free (copy);
+  free (copy);
   return result;
 }
 
 
          for (; part-- > 0;)
            {
            skip:
-             if (data[part].as_in)
-               free (data[part].as_in);
-             if (data[part].dis_out
-                 && data[part].dis_out != data[part].as_in)
+             free (data[part].as_in);
+             if (data[part].dis_out != data[part].as_in)
                free (data[part].dis_out);
            }