Patchwork [review] Replace int with bool in solib.c

login
register
mail settings
Submitter Simon Marchi (Code Review)
Date Nov. 15, 2019, 10:05 p.m.
Message ID <gerrit.1573855554000.Id695ed4ed0c3526af477d4d2bf585a7193c36cab@gnutoolchain-gerrit.osci.io>
Download mbox | patch
Permalink /patch/35964/
State New
Headers show

Comments

Simon Marchi (Code Review) - Nov. 15, 2019, 10:05 p.m.
Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/660
......................................................................

Replace int with bool in solib.c

This does not touch "int from_tty" and a couple of other instances
that require a bigger change.

gdb/ChangeLog:

2019-11-15  Christian Biesinger  <cbiesinger@google.com>

	* solib.c (solib_find_1): Change int to bool.
	(exec_file_find): Change int to bool.
	(solib_find): Change int to bool.
	(solib_read_symbols): Change int to bool.
	(solib_used): Change int to bool.
	(solib_add): Change int to bool.
	(info_sharedlibrary_command): Change int to bool.
	(solib_contains_address_p): Change int to bool.
	(solib_keep_data_in_core): Change int to bool.
	(in_solib_dynsym_resolve_code): Change int to bool.
	(reload_shared_libraries_1): Change int to bool.
	(gdb_sysroot_changed): Change int to bool.
	* solib.h (solib_read_symbols): Change int to bool.
	(solib_contains_address_p): Change int to bool.
	(solib_keep_data_in_core): Change int to bool.
	(in_solib_dynsym_resolve_code): Change int to bool.
	(libpthread_name_p): Change int to bool.

Change-Id: Id695ed4ed0c3526af477d4d2bf585a7193c36cab
---
M gdb/solib.c
M gdb/solib.h
2 files changed, 47 insertions(+), 53 deletions(-)
Simon Marchi (Code Review) - Nov. 22, 2019, 3:15 a.m.
Kevin Buettner has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/660
......................................................................


Patch Set 1: Code-Review-1

(3 comments)

Just one question and two nits... other than that, it looks good to me.

| --- gdb/solib.c
| +++ gdb/solib.c
| @@ -1222,15 +1214,17 @@ /* Check to see if an address is in the dynamic loader's dynamic
| -int
| +/* See solib.h.  */
| +
| +bool
|  in_solib_dynsym_resolve_code (CORE_ADDR pc)
|  {
|    const struct target_so_ops *ops = solib_ops (target_gdbarch ());
|  
| -  return ops->in_dynsym_resolve_code (pc);
| +  return ops->in_dynsym_resolve_code (pc) != 0;

PS1, Line 1221:

Why the '!= 0' check?

|  }
|  
|  /* Implements the "sharedlibrary" command.  */
|  
|  static void
|  sharedlibrary_command (const char *args, int from_tty)
|  {
|    dont_repeat ();
|    solib_add (args, from_tty, 1);

 ...

| @@ -1324,18 +1318,18 @@ reload_shared_libraries_1 (int from_tty)
|  	}
|  
|        /* If this shared library is now associated with a new symbol
|  	 file, open it.  */
|        if (found_pathname != NULL
|  	  && (!was_loaded
|  	      || filename_cmp (found_pathname, so->so_name) != 0))
|  	{
| -	  int got_error = 0;
| +	  bool got_error = 0;

PS1, Line 1326:

s/0/false/

|  
|  	  try
|  	    {
|  	      solib_map_sections (so);
|  	    }
|  
|  	  catch (const gdb_exception_error &e)
|  	    {
|  	      exception_fprintf (gdb_stderr, e,

 ...

| @@ -1410,18 +1404,18 @@ static void
|  gdb_sysroot_changed (const char *ignored, int from_tty,
|  		     struct cmd_list_element *e)
|  {
|    const char *old_prefix = "remote:";
|    const char *new_prefix = TARGET_SYSROOT_PREFIX;
|  
|    if (startswith (gdb_sysroot, old_prefix))
|      {
| -      static int warning_issued = 0;
| +      static bool warning_issued = 0;

PS1, Line 1412:

s/0/false/

|  
|        gdb_assert (strlen (old_prefix) == strlen (new_prefix));
|        memcpy (gdb_sysroot, new_prefix, strlen (new_prefix));
|  
|        if (!warning_issued)
|  	{
|  	  warning (_("\"%s\" is deprecated, use \"%s\" instead."),
|  		   old_prefix, new_prefix);
|  	  warning (_("sysroot set to \"%s\"."), gdb_sysroot);
Simon Marchi (Code Review) - Nov. 22, 2019, 7:31 p.m.
Christian Biesinger has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/660
......................................................................


Uploaded patch set 2.

(3 comments)

| --- gdb/solib.c
| +++ gdb/solib.c
| @@ -1222,15 +1214,17 @@ /* Check to see if an address is in the dynamic loader's dynamic
| -int
| +/* See solib.h.  */
| +
| +bool
|  in_solib_dynsym_resolve_code (CORE_ADDR pc)
|  {
|    const struct target_so_ops *ops = solib_ops (target_gdbarch ());
|  
| -  return ops->in_dynsym_resolve_code (pc);
| +  return ops->in_dynsym_resolve_code (pc) != 0;

PS1, Line 1221:

Because that function returns an int, I thought it would be better to
be explicit about the conversion to bool. Let me know if you want me
to remove it, though.

|  }
|  
|  /* Implements the "sharedlibrary" command.  */
|  
|  static void
|  sharedlibrary_command (const char *args, int from_tty)
|  {
|    dont_repeat ();
|    solib_add (args, from_tty, 1);

 ...

| @@ -1324,18 +1318,18 @@ reload_shared_libraries_1 (int from_tty)
|  	}
|  
|        /* If this shared library is now associated with a new symbol
|  	 file, open it.  */
|        if (found_pathname != NULL
|  	  && (!was_loaded
|  	      || filename_cmp (found_pathname, so->so_name) != 0))
|  	{
| -	  int got_error = 0;
| +	  bool got_error = 0;

PS1, Line 1326:

Thanks, done.

|  
|  	  try
|  	    {
|  	      solib_map_sections (so);
|  	    }
|  
|  	  catch (const gdb_exception_error &e)
|  	    {
|  	      exception_fprintf (gdb_stderr, e,

 ...

| @@ -1410,18 +1404,18 @@ static void
|  gdb_sysroot_changed (const char *ignored, int from_tty,
|  		     struct cmd_list_element *e)
|  {
|    const char *old_prefix = "remote:";
|    const char *new_prefix = TARGET_SYSROOT_PREFIX;
|  
|    if (startswith (gdb_sysroot, old_prefix))
|      {
| -      static int warning_issued = 0;
| +      static bool warning_issued = 0;

PS1, Line 1412:

Done

|  
|        gdb_assert (strlen (old_prefix) == strlen (new_prefix));
|        memcpy (gdb_sysroot, new_prefix, strlen (new_prefix));
|  
|        if (!warning_issued)
|  	{
|  	  warning (_("\"%s\" is deprecated, use \"%s\" instead."),
|  		   old_prefix, new_prefix);
|  	  warning (_("sysroot set to \"%s\"."), gdb_sysroot);
Simon Marchi (Code Review) - Nov. 25, 2019, 6:43 p.m.
Kevin Buettner has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/660
......................................................................


Patch Set 2: Code-Review+2

(1 comment)

| --- gdb/solib.c
| +++ gdb/solib.c
| @@ -1222,15 +1214,17 @@ /* Check to see if an address is in the dynamic loader's dynamic
| -int
| +/* See solib.h.  */
| +
| +bool
|  in_solib_dynsym_resolve_code (CORE_ADDR pc)
|  {
|    const struct target_so_ops *ops = solib_ops (target_gdbarch ());
|  
| -  return ops->in_dynsym_resolve_code (pc);
| +  return ops->in_dynsym_resolve_code (pc) != 0;

PS1, Line 1221:

Done

|  }
|  
|  /* Implements the "sharedlibrary" command.  */
|  
|  static void
|  sharedlibrary_command (const char *args, int from_tty)
|  {
|    dont_repeat ();
|    solib_add (args, from_tty, 1);

Patch

diff --git a/gdb/solib.c b/gdb/solib.c
index 400fdde..31d2ccc 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -149,7 +149,7 @@ 
 */
 
 static gdb::unique_xmalloc_ptr<char>
-solib_find_1 (const char *in_pathname, int *fd, int is_solib)
+solib_find_1 (const char *in_pathname, int *fd, bool is_solib)
 {
   const struct target_so_ops *ops = solib_ops (target_gdbarch ());
   int found_file = -1;
@@ -218,7 +218,7 @@ 
     temp_pathname.reset (xstrdup (in_pathname));
   else
     {
-      int need_dir_separator;
+      bool need_dir_separator;
 
       /* Concatenate the sysroot and the target reported filename.  We
 	 may need to glue them with a directory separator.  Cases to
@@ -266,7 +266,7 @@ 
       && sysroot != NULL
       && HAS_TARGET_DRIVE_SPEC (fskind, in_pathname))
     {
-      int need_dir_separator = !IS_DIR_SEPARATOR (in_pathname[2]);
+      bool need_dir_separator = !IS_DIR_SEPARATOR (in_pathname[2]);
       char drive[2] = { in_pathname[0], '\0' };
 
       temp_pathname.reset (concat (sysroot,
@@ -380,7 +380,7 @@ 
 
   if (*gdb_sysroot != '\0' && IS_TARGET_ABSOLUTE_PATH (fskind, in_pathname))
     {
-      result = solib_find_1 (in_pathname, fd, 0);
+      result = solib_find_1 (in_pathname, fd, false);
 
       if (result == NULL && fskind == file_system_kind_dos_based)
 	{
@@ -390,7 +390,7 @@ 
 	  strcpy (new_pathname, in_pathname);
 	  strcat (new_pathname, ".exe");
 
-	  result = solib_find_1 (new_pathname, fd, 0);
+	  result = solib_find_1 (new_pathname, fd, false);
 	}
     }
   else
@@ -449,7 +449,7 @@ 
 	}
     }
 
-  return solib_find_1 (in_pathname, fd, 1);
+  return solib_find_1 (in_pathname, fd, true);
 }
 
 /* Open and return a BFD for the shared library PATHNAME.  If FD is not -1,
@@ -655,10 +655,9 @@ 
 }
 
 /* Read in symbols for shared object SO.  If SYMFILE_VERBOSE is set in FLAGS,
-   be chatty about it.  Return non-zero if any symbols were actually
-   loaded.  */
+   be chatty about it.  Return true if any symbols were actually loaded.  */
 
-int
+bool
 solib_read_symbols (struct so_list *so, symfile_add_flags flags)
 {
   if (so->symbols_loaded)
@@ -708,24 +707,24 @@ 
 			     so->so_name);
 	}
 
-      return 1;
+      return true;
     }
 
-  return 0;
+  return false;
 }
 
-/* Return 1 if KNOWN->objfile is used by any other so_list object in the
-   SO_LIST_HEAD list.  Return 0 otherwise.  */
+/* Return true if KNOWN->objfile is used by any other so_list object in the
+   SO_LIST_HEAD list.  Return false otherwise.  */
 
-static int
+static bool
 solib_used (const struct so_list *const known)
 {
   const struct so_list *pivot;
 
   for (pivot = so_list_head; pivot != NULL; pivot = pivot->next)
     if (pivot != known && pivot->objfile == known->objfile)
-      return 1;
-  return 0;
+      return true;
+  return false;
 }
 
 /* See solib.h.  */
@@ -918,7 +917,7 @@ 
    the file name against "/libpthread".  This can lead to false
    positives, but this should be good enough in practice.  */
 
-int
+bool
 libpthread_name_p (const char *name)
 {
   return (strstr (name, "/libpthread") != NULL);
@@ -926,7 +925,7 @@ 
 
 /* Return non-zero if SO is the libpthread shared library.  */
 
-static int
+static bool
 libpthread_solib_p (struct so_list *so)
 {
   return libpthread_name_p (so->so_name);
@@ -973,8 +972,8 @@ 
      symbols for any that match the pattern --- or any whose symbols
      aren't already loaded, if no pattern was given.  */
   {
-    int any_matches = 0;
-    int loaded_any_symbols = 0;
+    bool any_matches = false;
+    bool loaded_any_symbols = false;
     symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
     if (from_tty)
@@ -991,7 +990,7 @@ 
           const int add_this_solib =
             (readsyms || libpthread_solib_p (gdb));
 
-	  any_matches = 1;
+	  any_matches = true;
 	  if (add_this_solib)
 	    {
 	      if (gdb->symbols_loaded)
@@ -1003,7 +1002,7 @@ 
 				       gdb->so_name);
 		}
 	      else if (solib_read_symbols (gdb, add_flags))
-		loaded_any_symbols = 1;
+		loaded_any_symbols = true;
 	    }
 	}
 
@@ -1032,7 +1031,7 @@ 
 info_sharedlibrary_command (const char *pattern, int from_tty)
 {
   struct so_list *so = NULL;	/* link map state variable */
-  int so_missing_debug_info = 0;
+  bool so_missing_debug_info = false;
   int addr_width;
   int nr_libs;
   struct gdbarch *gdbarch = target_gdbarch ();
@@ -1099,7 +1098,7 @@ 
 	    && so->symbols_loaded
 	    && !objfile_has_symbols (so->objfile))
 	  {
-	    so_missing_debug_info = 1;
+	    so_missing_debug_info = true;
 	    uiout->field_string ("syms-read", "Yes (*)");
 	  }
 	else
@@ -1126,9 +1125,9 @@ 
     }
 }
 
-/* Return 1 if ADDRESS lies within SOLIB.  */
+/* See solib.h.  */
 
-int
+bool
 solib_contains_address_p (const struct so_list *const solib,
 			  CORE_ADDR address)
 {
@@ -1136,9 +1135,9 @@ 
 
   for (p = solib->sections; p < solib->sections_end; p++)
     if (p->addr <= address && address < p->endaddr)
-      return 1;
+      return true;
 
-  return 0;
+  return false;
 }
 
 /* If ADDRESS is in a shared lib in program space PSPACE, return its
@@ -1164,21 +1163,17 @@ 
   return (0);
 }
 
-/* Return whether the data starting at VADDR, size SIZE, must be kept
-   in a core file for shared libraries loaded before "gcore" is used
-   to be handled correctly when the core file is loaded.  This only
-   applies when the section would otherwise not be kept in the core
-   file (in particular, for readonly sections).  */
+/* See solib.h.  */
 
-int
+bool
 solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size)
 {
   const struct target_so_ops *ops = solib_ops (target_gdbarch ());
 
   if (ops->keep_data_in_core)
-    return ops->keep_data_in_core (vaddr, size);
+    return ops->keep_data_in_core (vaddr, size) != 0;
   else
-    return 0;
+    return false;
 }
 
 /* Called by free_all_symtabs */
@@ -1216,15 +1211,14 @@ 
   ops->solib_create_inferior_hook (from_tty);
 }
 
-/* Check to see if an address is in the dynamic loader's dynamic
-   symbol resolution code.  Return 1 if so, 0 otherwise.  */
+/* See solib.h.  */
 
-int
+bool
 in_solib_dynsym_resolve_code (CORE_ADDR pc)
 {
   const struct target_so_ops *ops = solib_ops (target_gdbarch ());
 
-  return ops->in_dynsym_resolve_code (pc);
+  return ops->in_dynsym_resolve_code (pc) != 0;
 }
 
 /* Implements the "sharedlibrary" command.  */
@@ -1298,7 +1292,7 @@ 
   for (so = so_list_head; so != NULL; so = so->next)
     {
       const char *found_pathname = NULL;
-      int was_loaded = so->symbols_loaded;
+      bool was_loaded = so->symbols_loaded != 0;
       symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
 
       if (from_tty)
@@ -1329,7 +1323,7 @@ 
 	  && (!was_loaded
 	      || filename_cmp (found_pathname, so->so_name) != 0))
 	{
-	  int got_error = 0;
+	  bool got_error = 0;
 
 	  try
 	    {
@@ -1341,7 +1335,7 @@ 
 	      exception_fprintf (gdb_stderr, e,
 				 _("Error while mapping "
 				   "shared library sections:\n"));
-	      got_error = 1;
+	      got_error = true;
 	    }
 
 	    if (!got_error
@@ -1415,7 +1409,7 @@ 
 
   if (startswith (gdb_sysroot, old_prefix))
     {
-      static int warning_issued = 0;
+      static bool warning_issued = 0;
 
       gdb_assert (strlen (old_prefix) == strlen (new_prefix));
       memcpy (gdb_sysroot, new_prefix, strlen (new_prefix));
@@ -1426,7 +1420,7 @@ 
 		   old_prefix, new_prefix);
 	  warning (_("sysroot set to \"%s\"."), gdb_sysroot);
 
-	  warning_issued = 1;
+	  warning_issued = true;
 	}
     }
 
diff --git a/gdb/solib.h b/gdb/solib.h
index 5e52593..fd5684c 100644
--- a/gdb/solib.h
+++ b/gdb/solib.h
@@ -39,7 +39,7 @@ 
 /* Called to add symbols from a shared library to gdb's symbol table.  */
 
 extern void solib_add (const char *, int, int);
-extern int solib_read_symbols (struct so_list *, symfile_add_flags);
+extern bool solib_read_symbols (struct so_list *, symfile_add_flags);
 
 /* Function to be called when the inferior starts up, to discover the
    names of shared libraries that are dynamically linked, the base
@@ -52,9 +52,9 @@ 
 
 extern char *solib_name_from_address (struct program_space *, CORE_ADDR);
 
-/* Return 1 if ADDR lies within SOLIB.  */
+/* Return true if ADDR lies within SOLIB.  */
 
-extern int solib_contains_address_p (const struct so_list *, CORE_ADDR);
+extern bool solib_contains_address_p (const struct so_list *, CORE_ADDR);
 
 /* Return whether the data starting at VADDR, size SIZE, must be kept
    in a core file for shared libraries loaded before "gcore" is used
@@ -62,12 +62,12 @@ 
    applies when the section would otherwise not be kept in the core
    file (in particular, for readonly sections).  */
 
-extern int solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size);
+extern bool solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size);
 
-/* Return 1 if PC lies in the dynamic symbol resolution code of the
+/* Return true if PC lies in the dynamic symbol resolution code of the
    run time loader.  */
 
-extern int in_solib_dynsym_resolve_code (CORE_ADDR);
+extern bool in_solib_dynsym_resolve_code (CORE_ADDR);
 
 /* Discard symbols that were auto-loaded from shared libraries.  */
 
@@ -96,9 +96,9 @@ 
 
 extern void update_solib_list (int from_tty);
 
-/* Return non-zero if NAME is the libpthread shared library.  */
+/* Return true if NAME is the libpthread shared library.  */
 
-extern int libpthread_name_p (const char *name);
+extern bool libpthread_name_p (const char *name);
 
 /* Look up symbol from both symbol table and dynamic string table.  */