From 5e2ab6125485bede5611187f2df4b26b04026b80 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Wed, 20 May 2020 22:50:49 +0930
Subject: [PATCH] Replace "if (x) free (x)" with "free (x)", ld

	* deffilep.y: Replace "if (x) free (x)" with "free (x)" thoughout.
	* emultempl/elf.em: Likewise.
	* emultempl/msp430.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/pep.em: Likewise.
	* emultempl/ppc64elf.em: Likewise.
	* emultempl/xtensaelf.em: Likewise.
	* ldelf.c: Likewise.
	* ldfile.c: Likewise.
	* ldmain.c: Likewise.
	* ldmisc.c: Likewise.
	* lexsup.c: Likewise.
	* pe-dll.c: Likewise.
---
 ld/ChangeLog              | 16 ++++++++++++++++
 ld/deffilep.y             | 33 +++++++++++----------------------
 ld/emultempl/elf.em       |  7 ++-----
 ld/emultempl/msp430.em    |  3 +--
 ld/emultempl/pe.em        |  7 ++-----
 ld/emultempl/pep.em       |  7 ++-----
 ld/emultempl/ppc64elf.em  |  3 +--
 ld/emultempl/xtensaelf.em | 19 ++++++-------------
 ld/ldelf.c                |  3 +--
 ld/ldfile.c               |  7 +++----
 ld/ldmain.c               |  3 +--
 ld/ldmisc.c               | 20 ++++++--------------
 ld/lexsup.c               |  3 +--
 ld/pe-dll.c               |  9 +++------
 14 files changed, 56 insertions(+), 84 deletions(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index d95d5cfc217..d12f3727ff1 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,19 @@
+2020-05-21  Alan Modra  <amodra@gmail.com>
+
+	* deffilep.y: Replace "if (x) free (x)" with "free (x)" thoughout.
+	* emultempl/elf.em: Likewise.
+	* emultempl/msp430.em: Likewise.
+	* emultempl/pe.em: Likewise.
+	* emultempl/pep.em: Likewise.
+	* emultempl/ppc64elf.em: Likewise.
+	* emultempl/xtensaelf.em: Likewise.
+	* ldelf.c: Likewise.
+	* ldfile.c: Likewise.
+	* ldmain.c: Likewise.
+	* ldmisc.c: Likewise.
+	* lexsup.c: Likewise.
+	* pe-dll.c: Likewise.
+
 2020-05-20  Nelson Chu  <nelson.chu@sifive.com>
 
 	* testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated
diff --git a/ld/deffilep.y b/ld/deffilep.y
index b9105d4aa18..51cb1d7fcde 100644
--- a/ld/deffilep.y
+++ b/ld/deffilep.y
@@ -434,19 +434,15 @@ def_file_free (def_file *fdef)
 
   if (!fdef)
     return;
-  if (fdef->name)
-    free (fdef->name);
-  if (fdef->description)
-    free (fdef->description);
+  free (fdef->name);
+  free (fdef->description);
 
   if (fdef->section_defs)
     {
       for (i = 0; i < fdef->num_section_defs; i++)
 	{
-	  if (fdef->section_defs[i].name)
-	    free (fdef->section_defs[i].name);
-	  if (fdef->section_defs[i].class)
-	    free (fdef->section_defs[i].class);
+	  free (fdef->section_defs[i].name);
+	  free (fdef->section_defs[i].class);
 	}
       free (fdef->section_defs);
     }
@@ -455,13 +451,10 @@ def_file_free (def_file *fdef)
     {
       for (i = 0; i < fdef->num_exports; i++)
 	{
-	  if (fdef->exports[i].internal_name
-	      && fdef->exports[i].internal_name != fdef->exports[i].name)
+	  if (fdef->exports[i].internal_name != fdef->exports[i].name)
 	    free (fdef->exports[i].internal_name);
-	  if (fdef->exports[i].name)
-	    free (fdef->exports[i].name);
-	  if (fdef->exports[i].its_name)
-	    free (fdef->exports[i].its_name);
+	  free (fdef->exports[i].name);
+	  free (fdef->exports[i].its_name);
 	}
       free (fdef->exports);
     }
@@ -470,13 +463,10 @@ def_file_free (def_file *fdef)
     {
       for (i = 0; i < fdef->num_imports; i++)
 	{
-	  if (fdef->imports[i].internal_name
-	      && fdef->imports[i].internal_name != fdef->imports[i].name)
+	  if (fdef->imports[i].internal_name != fdef->imports[i].name)
 	    free (fdef->imports[i].internal_name);
-	  if (fdef->imports[i].name)
-	    free (fdef->imports[i].name);
-	  if (fdef->imports[i].its_name)
-	    free (fdef->imports[i].its_name);
+	  free (fdef->imports[i].name);
+	  free (fdef->imports[i].its_name);
 	}
       free (fdef->imports);
     }
@@ -1049,8 +1039,7 @@ def_image_name (const char *name, bfd_vma base, int is_dll)
 	einfo ("%s:%d: Warning: path components stripped from %s, '%s'\n",
 	       def_filename, linenumber, is_dll ? "LIBRARY" : "NAME",
 	       name);
-      if (def->name)
-	free (def->name);
+      free (def->name);
       /* Append the default suffix, if none specified.  */
       if (strchr (image_name, '.') == 0)
 	{
diff --git a/ld/emultempl/elf.em b/ld/emultempl/elf.em
index eac2ce2f4ca..4fd6fdffe75 100644
--- a/ld/emultempl/elf.em
+++ b/ld/emultempl/elf.em
@@ -620,11 +620,8 @@ gld${EMULATION_NAME}_handle_option (int optc)
       return FALSE;
 
     case OPTION_BUILD_ID:
-      if (ldelf_emit_note_gnu_build_id != NULL)
-	{
-	  free ((char *) ldelf_emit_note_gnu_build_id);
-	  ldelf_emit_note_gnu_build_id = NULL;
-	}
+      free ((char *) ldelf_emit_note_gnu_build_id);
+      ldelf_emit_note_gnu_build_id = NULL;
       if (optarg == NULL)
 	optarg = DEFAULT_BUILD_ID_STYLE;
       if (strcmp (optarg, "none"))
diff --git a/ld/emultempl/msp430.em b/ld/emultempl/msp430.em
index 850c3a836ce..c823a6d9b58 100644
--- a/ld/emultempl/msp430.em
+++ b/ld/emultempl/msp430.em
@@ -330,8 +330,7 @@ gld${EMULATION_NAME}_place_orphan (asection * s,
  end:
   free (upper_name);
   free (lower_name);
-  if (buf)
-    free (buf);
+  free (buf);
   return lower;
 }
 EOF
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 8c5ee762334..3899c9d92c8 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -884,11 +884,8 @@ gld${EMULATION_NAME}_handle_option (int optc)
       pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE;
       break;
     case OPTION_BUILD_ID:
-      if (emit_build_id != NULL)
-	{
-	  free ((char *) emit_build_id);
-	  emit_build_id = NULL;
-	}
+      free ((char *) emit_build_id);
+      emit_build_id = NULL;
       if (optarg == NULL)
 	optarg = DEFAULT_BUILD_ID_STYLE;
       if (strcmp (optarg, "none"))
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index ea8e768ea93..a0a7023e706 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -831,11 +831,8 @@ gld${EMULATION_NAME}_handle_option (int optc)
       pe_dll_characteristics |= IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE;
       break;
     case OPTION_BUILD_ID:
-      if (emit_build_id != NULL)
-	{
-	  free ((char *) emit_build_id);
-	  emit_build_id = NULL;
-	}
+      free ((char *) emit_build_id);
+      emit_build_id = NULL;
       if (optarg == NULL)
 	optarg = DEFAULT_BUILD_ID_STYLE;
       if (strcmp (optarg, "none"))
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index 6633f8156ac..a2834c85257 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -602,8 +602,7 @@ gld${EMULATION_NAME}_finish (void)
       fprintf (stderr, "%s: %s\n", program_name, line);
     }
   fflush (stderr);
-  if (msg != NULL)
-    free (msg);
+  free (msg);
 
   finish_default ();
 }
diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
index 2d9f594969f..932721c6f16 100644
--- a/ld/emultempl/xtensaelf.em
+++ b/ld/emultempl/xtensaelf.em
@@ -216,18 +216,15 @@ replace_insn_sec_with_prop_sec (bfd *abfd,
 
   remove_section (abfd, insn_sec);
 
-  if (insn_contents)
-    free (insn_contents);
+  free (insn_contents);
 
   return TRUE;
 
  cleanup:
   if (prop_sec && prop_sec->owner)
     remove_section (abfd, prop_sec);
-  if (insn_contents)
-    free (insn_contents);
-  if (internal_relocs)
-    free (internal_relocs);
+  free (insn_contents);
+  free (internal_relocs);
 
   return FALSE;
 }
@@ -271,8 +268,7 @@ replace_instruction_table_sections (bfd *abfd, asection *sec)
 		 insn_sec_name, abfd, message);
 	}
     }
-  if (owned_prop_sec_name)
-    free (owned_prop_sec_name);
+  free (owned_prop_sec_name);
 }
 
 
@@ -636,8 +632,7 @@ xtensa_append_section_deps (reloc_deps_graph *deps, asection *sec)
 	{
 	  new_sections[i] = deps->sections[i];
 	}
-      if (deps->sections != NULL)
-	free (deps->sections);
+      free (deps->sections);
       deps->sections = new_sections;
       deps->size = new_size;
     }
@@ -675,9 +670,7 @@ free_reloc_deps_graph (reloc_deps_graph *deps)
 	}
       xtensa_set_section_deps (deps, sec, NULL);
     }
-  if (deps->sections)
-    free (deps->sections);
-
+  free (deps->sections);
   free (deps);
 }
 
diff --git a/ld/ldelf.c b/ld/ldelf.c
index fa4bf9f7278..efb4b77382e 100644
--- a/ld/ldelf.c
+++ b/ld/ldelf.c
@@ -783,8 +783,7 @@ ldelf_parse_ld_so_conf_include (struct ldelf_ld_so_conf *info,
   ldelf_parse_ld_so_conf (info, pattern);
 #endif
 
-  if (newp)
-    free (newp);
+  free (newp);
 }
 
 static bfd_boolean
diff --git a/ld/ldfile.c b/ld/ldfile.c
index 53112c86947..60b28d3f0ce 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -240,8 +240,8 @@ ldfile_try_open_bfd (const char *attempt,
 				skip = 1;
 			    }
 			  free (arg1);
-			  if (arg2) free (arg2);
-			  if (arg3) free (arg3);
+			  free (arg2);
+			  free (arg3);
 			  break;
 			case NAME:
 			case LNAME:
@@ -250,8 +250,7 @@ ldfile_try_open_bfd (const char *attempt,
 			  free (yylval.name);
 			  break;
 			case INT:
-			  if (yylval.bigint.str)
-			    free (yylval.bigint.str);
+			  free (yylval.bigint.str);
 			  break;
 			}
 		      token = yylex ();
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 04a3f7a5117..3499e7c784e 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -1349,8 +1349,7 @@ undefined_symbol (struct bfd_link_info *info,
   else
     {
       error_count = 0;
-      if (error_name != NULL)
-	free (error_name);
+      free (error_name);
       error_name = xstrdup (name);
     }
 
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index cc090a51010..418e8d5c6ed 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -375,13 +375,11 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
 				    abfd, functionname);
 
 			    last_bfd = abfd;
-			    if (last_file != NULL)
-			      free (last_file);
+			    free (last_file);
 			    last_file = NULL;
 			    if (filename)
 			      last_file = xstrdup (filename);
-			    if (last_function != NULL)
-			      free (last_function);
+			    free (last_function);
 			    last_function = xstrdup (functionname);
 			  }
 			discard_last = FALSE;
@@ -412,16 +410,10 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
 		if (discard_last)
 		  {
 		    last_bfd = NULL;
-		    if (last_file != NULL)
-		      {
-			free (last_file);
-			last_file = NULL;
-		      }
-		    if (last_function != NULL)
-		      {
-			free (last_function);
-			last_function = NULL;
-		      }
+		    free (last_file);
+		    last_file = NULL;
+		    free (last_function);
+		    last_function = NULL;
 		  }
 	      }
 	      break;
diff --git a/ld/lexsup.c b/ld/lexsup.c
index c02041d5f10..fe9526b5271 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -1485,8 +1485,7 @@ parse_args (unsigned argc, char **argv)
 	case 'Y':
 	  if (CONST_STRNEQ (optarg, "P,"))
 	    optarg += 2;
-	  if (default_dirlist != NULL)
-	    free (default_dirlist);
+	  free (default_dirlist);
 	  default_dirlist = xstrdup (optarg);
 	  break;
 	case 'y':
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 60504293f35..f72b6583411 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -891,12 +891,9 @@ process_def_file_and_drectve (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *
 	  e[j - 1].flag_constant |= e[i].flag_constant;
 	  e[j - 1].flag_noname |= e[i].flag_noname;
 	  e[j - 1].flag_data |= e[i].flag_data;
-	  if (e[i].name)
-	    free (e[i].name);
-	  if (e[i].internal_name)
-	    free (e[i].internal_name);
-	  if (e[i].its_name)
-	    free (e[i].its_name);
+	  free (e[i].name);
+	  free (e[i].internal_name);
+	  free (e[i].its_name);
 	}
       else
 	{
-- 
GitLab