[PATCH 1/2] gdb: add default parameter for cp_demangled_name_to_comp errmsg

Simon Marchi <[email protected]>
Newsgroups gmane.comp.gdb.patches
Message-ID <[email protected]>
Most call sites pass NULL as cp_demangled_name_to_comp's errmsg
parameter (they are not interested in the error message).  Make errmsg
have a nullptr default value and simplify those call sites.

I am generally not a big fan of default values, especially when the
parameter changes how the function behaves.  But in this case it does
really change the behavior of the function, so I think it's fine.

There is one spot (should_parse) that passed a non-NULL value but then
did not use it, remove that.

Change-Id: I9d30229047d9892cc44953914e6416a607949152
---
 gdb/cp-name-parser.y |  3 +--
 gdb/cp-support.c     | 12 ++++++------
 gdb/cp-support.h     |  2 +-
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y
index 4be50599762e..aee5d8341519 100644
--- a/gdb/cp-name-parser.y
+++ b/gdb/cp-name-parser.y
@@ -2098,8 +2098,7 @@ should_be_the_same (const char *one, const char *two)
 static void
 should_parse (const char *name)
 {
-  std::string err;
-  auto parsed = cp_demangled_name_to_comp (name, &err);
+  auto parsed = cp_demangled_name_to_comp (name);
   SELF_CHECK (parsed != nullptr);
 }
 
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index 335e06a039f2..36d7c8dd113e 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -253,7 +253,7 @@ inspect_type (struct demangle_parse_info *info,
 	     tree will contain pointers into NAME, so NAME cannot
 	     be free'd until all typedef conversion is done and
 	     the final result is converted into a string.  */
-	  i = cp_demangled_name_to_comp (name, NULL);
+	  i = cp_demangled_name_to_comp (name);
 	  if (i != NULL)
 	    {
 	      /* Merge the two trees.  */
@@ -600,7 +600,7 @@ cp_canonicalize_string_full (const char *string,
   std::unique_ptr<demangle_parse_info> info;
 
   estimated_len = strlen (string) * 2;
-  info = cp_demangled_name_to_comp (string, NULL);
+  info = cp_demangled_name_to_comp (string);
   if (info != NULL)
     {
       /* Replace all the typedefs in the tree.  */
@@ -647,7 +647,7 @@ cp_canonicalize_string (const char *string)
   if (cp_already_canonical (string))
     return nullptr;
 
-  info = cp_demangled_name_to_comp (string, NULL);
+  info = cp_demangled_name_to_comp (string);
   if (info == NULL)
     return nullptr;
 
@@ -709,7 +709,7 @@ mangled_name_to_comp (const char *mangled_name, int options,
   /* If we could demangle the name, parse it to build the component
      tree.  */
   std::unique_ptr<demangle_parse_info> info
-    = cp_demangled_name_to_comp (demangled_name.get (), NULL);
+    = cp_demangled_name_to_comp (demangled_name.get ());
 
   if (info == NULL)
     return NULL;
@@ -904,7 +904,7 @@ cp_func_name (const char *full_name)
   struct demangle_component *ret_comp;
   std::unique_ptr<demangle_parse_info> info;
 
-  info = cp_demangled_name_to_comp (full_name, NULL);
+  info = cp_demangled_name_to_comp (full_name);
   if (!info)
     return nullptr;
 
@@ -933,7 +933,7 @@ cp_remove_params_1 (const char *demangled_name, bool require_params)
   if (demangled_name == NULL)
     return NULL;
 
-  info = cp_demangled_name_to_comp (demangled_name, NULL);
+  info = cp_demangled_name_to_comp (demangled_name);
   if (info == NULL)
     return NULL;
 
diff --git a/gdb/cp-support.h b/gdb/cp-support.h
index 2bd3430a7a81..e495895afdbc 100644
--- a/gdb/cp-support.h
+++ b/gdb/cp-support.h
@@ -169,7 +169,7 @@ struct type *cp_find_type_baseclass_by_name (struct type *parent_type,
 /* Functions from cp-name-parser.y.  */
 
 extern std::unique_ptr<demangle_parse_info> cp_demangled_name_to_comp
-     (const char *demangled_name, std::string *errmsg);
+     (const char *demangled_name, std::string *errmsg = nullptr);
 
 /* Convert RESULT to a string.  ESTIMATED_LEN is used only as a guide
    to the length of the result.  */

base-commit: d2102b0d6a95ba3b37204976fb3f6ebd935822fb
-- 
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.