From 862bacf11cacc734f854f81b64edde23465228c7 Mon Sep 17 00:00:00 2001
From: Chih-Hung Hsieh <chh@google.com>
Date: Wed, 9 Sep 2015 12:32:07 -0700
Subject: [PATCH] Remove redundant NULL tests.

Clang gives warning on redundant NULL tests of parameters
that are declared with __nonnull_attribute__.

Signed-off-by: Chih-Hung Hsieh <chh@google.com>
---
 libdw/ChangeLog                 | 7 +++++++
 libdw/dwarf_macro_getsrcfiles.c | 4 +---
 libdw/dwarf_siblingof.c         | 3 +--
 libdw/libdw_visit_scopes.c      | 2 +-
 libdwfl/ChangeLog               | 6 ++++++
 libdwfl/dwfl_frame.c            | 3 ++-
 libdwfl/dwfl_module_getelf.c    | 4 +---
 libebl/ChangeLog                | 8 ++++++++
 libebl/ebldwarftoregno.c        | 3 +--
 libebl/eblinitreg.c             | 3 ++-
 libebl/eblnormalizepc.c         | 3 ++-
 libebl/eblunwind.c              | 3 ++-
 12 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 96f8d90..13beefc 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,10 @@
+2015-09-09  Chih-Hung Hsieh  <chh@google.com>
+
+	* dwarf_macro_getsrcfiles.c (dwarf_macro_getsrcfiles): Remove
+	redundant NULL tests on parameters declared with __nonnull_attribute__.
+	* dwarf_siblingof.c (dwarf_siblingof): Likewise.
+	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise.
+
 2015-09-04  Chih-Hung Hsieh  <chh@google.com>
 	    Mark Wielaard  <mjw@redhat.com>
 
diff --git a/libdw/dwarf_macro_getsrcfiles.c b/libdw/dwarf_macro_getsrcfiles.c
index cc19043..3b1794b 100644
--- a/libdw/dwarf_macro_getsrcfiles.c
+++ b/libdw/dwarf_macro_getsrcfiles.c
@@ -36,9 +36,7 @@ int
 dwarf_macro_getsrcfiles (Dwarf *dbg, Dwarf_Macro *macro,
 			 Dwarf_Files **files, size_t *nfiles)
 {
-  if (macro == NULL)
-    return -1;
-
+  /* macro is declared NN */
   Dwarf_Macro_Op_Table *const table = macro->table;
   if (table->files == NULL)
     {
diff --git a/libdw/dwarf_siblingof.c b/libdw/dwarf_siblingof.c
index e598ae4..0dafc17 100644
--- a/libdw/dwarf_siblingof.c
+++ b/libdw/dwarf_siblingof.c
@@ -45,8 +45,7 @@ dwarf_siblingof (die, result)
   if (die == NULL)
     return -1;
 
-  if (result == NULL)
-    return -1;
+  /* result is declared NN */
 
   if (result != die)
     result->addr = NULL;
diff --git a/libdw/libdw_visit_scopes.c b/libdw/libdw_visit_scopes.c
index ac7e853..4a9b08e 100644
--- a/libdw/libdw_visit_scopes.c
+++ b/libdw/libdw_visit_scopes.c
@@ -138,7 +138,7 @@ __libdw_visit_scopes (depth, root, imports, previsit, postvisit, arg)
 
 	child.prune = false;
 
-	if (previsit != NULL)
+	/* previsit is declared NN */
 	  {
 	    int result = (*previsit) (depth + 1, &child, arg);
 	    if (result != DWARF_CB_OK)
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 2c76369..852da47 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,9 @@
+2015-09-09  Chih-Hung Hsieh  <chh@google.com>
+
+	* dwfl_frame.c (dwfl_attach_state): Remove redundant NULL tests
+	on parameters declared with __nonnull_attribute__.
+	* dwfl_module_getelf.c (dwfl_module_getelf): Likewise.
+
 2015-09-04  Chih-Hung Hsieh  <chh@google.com
 
 	* frame_unwind.c (expr_eval): Use llabs instead of abs.
diff --git a/libdwfl/dwfl_frame.c b/libdwfl/dwfl_frame.c
index f6f86c0..a91a1d6 100644
--- a/libdwfl/dwfl_frame.c
+++ b/libdwfl/dwfl_frame.c
@@ -143,7 +143,8 @@ dwfl_attach_state (Dwfl *dwfl, Elf *elf, pid_t pid,
 
   /* Reset any previous error, we are just going to try again.  */
   dwfl->attacherr = DWFL_E_NOERROR;
-  if (thread_callbacks == NULL || thread_callbacks->next_thread == NULL
+  /* thread_callbacks is declared NN */
+  if (thread_callbacks->next_thread == NULL
       || thread_callbacks->set_initial_registers == NULL)
     {
       dwfl->attacherr = DWFL_E_INVALID_ARGUMENT;
diff --git a/libdwfl/dwfl_module_getelf.c b/libdwfl/dwfl_module_getelf.c
index f20fb04..080647e 100644
--- a/libdwfl/dwfl_module_getelf.c
+++ b/libdwfl/dwfl_module_getelf.c
@@ -31,9 +31,7 @@
 Elf *
 dwfl_module_getelf (Dwfl_Module *mod, GElf_Addr *loadbase)
 {
-  if (mod == NULL)
-    return NULL;
-
+  /* mod is declared NN */
   __libdwfl_getelf (mod);
   if (mod->elferr == DWFL_E_NOERROR)
     {
diff --git a/libebl/ChangeLog b/libebl/ChangeLog
index 60ae566..aab0857 100644
--- a/libebl/ChangeLog
+++ b/libebl/ChangeLog
@@ -1,3 +1,11 @@
+2015-09-09  Chih-Hung Hsieh  <chh@google.com>
+
+	* ebldwarftoregno.c (ebl_dwarf_to_regno): Remove redundant NULL tests
+	on parameters declared with __nonnull_attribute__.
+	* eblinitreg.c (ebl_frame_nregs): Likewise.
+	* eblnormalizepc.c (ebl_normalize_pc): Likewise.
+	* eblunwind.c (ebl_unwind): Likewise.
+
 2015-09-04  Chih-Hung Hsieh  <chh@google.com>
 
 	* eblopenbackend.c (ebl_openbackend_machine): Replace K&R function
diff --git a/libebl/ebldwarftoregno.c b/libebl/ebldwarftoregno.c
index 8fb8540..c664496 100644
--- a/libebl/ebldwarftoregno.c
+++ b/libebl/ebldwarftoregno.c
@@ -35,7 +35,6 @@
 bool
 ebl_dwarf_to_regno (Ebl *ebl, unsigned *regno)
 {
-  if (ebl == NULL)
-    return false;
+  /* ebl is declared NN */
   return ebl->dwarf_to_regno == NULL ? true : ebl->dwarf_to_regno (ebl, regno);
 }
diff --git a/libebl/eblinitreg.c b/libebl/eblinitreg.c
index 5729b3c..8a3fb18 100644
--- a/libebl/eblinitreg.c
+++ b/libebl/eblinitreg.c
@@ -47,7 +47,8 @@ ebl_set_initial_registers_tid (Ebl *ebl, pid_t tid,
 size_t
 ebl_frame_nregs (Ebl *ebl)
 {
-  return ebl == NULL ? 0 : ebl->frame_nregs;
+  /* ebl is declared NN */
+  return ebl->frame_nregs;
 }
 
 GElf_Addr
diff --git a/libebl/eblnormalizepc.c b/libebl/eblnormalizepc.c
index a5fea77..1629353 100644
--- a/libebl/eblnormalizepc.c
+++ b/libebl/eblnormalizepc.c
@@ -35,6 +35,7 @@
 void
 ebl_normalize_pc (Ebl *ebl, Dwarf_Addr *pc)
 {
-  if (ebl != NULL && ebl->normalize_pc != NULL)
+  /* ebl is declared NN */
+  if (ebl->normalize_pc != NULL)
     ebl->normalize_pc (ebl, pc);
 }
diff --git a/libebl/eblunwind.c b/libebl/eblunwind.c
index 1251c1b..2970d03 100644
--- a/libebl/eblunwind.c
+++ b/libebl/eblunwind.c
@@ -37,7 +37,8 @@ ebl_unwind (Ebl *ebl, Dwarf_Addr pc, ebl_tid_registers_t *setfunc,
 	    ebl_tid_registers_get_t *getfunc, ebl_pid_memory_read_t *readfunc,
 	    void *arg, bool *signal_framep)
 {
-  if (ebl == NULL || ebl->unwind == NULL)
+  /* ebl is declared NN */
+  if (ebl->unwind == NULL)
     return false;
   return ebl->unwind (ebl, pc, setfunc, getfunc, readfunc, arg, signal_framep);
 }
-- 
2.6.0.rc0.131.gf624c3d

