[binutils-gdb] Restore test-cp-name-parser build

Pedro Alves palves@sourceware.org
Tue Mar 14 00:11:00 GMT 2017


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8a6200ba863f207d93467312431d107f50f0e2ab

commit 8a6200ba863f207d93467312431d107f50f0e2ab
Author: Pedro Alves <palves@redhat.com>
Date:   Tue Mar 14 00:11:09 2017 +0000

    Restore test-cp-name-parser build
    
    Commit c8b23b3f89fbb0 ("Add constructor and destructor to
    demangle_parse_info") a while ago broke the "test-cp-name-parser"
    build:
    
     $ make test-cp-name-parser
     [...]
     src/gdb/cp-name-parser.y: In function ‘int main(int, char**)’:
     src/gdb/cp-name-parser.y:2190:9: error: cannot convert ‘std::unique_ptr<demangle_parse_info>’ to ‘demangle_parse_info*’ in assignment
       result = cp_demangled_name_to_comp (str2, &errmsg);
    	  ^
     src/gdb/cp-name-parser.y:2199:38: error: ‘cp_demangled_name_parse_free’ was not declared in this scope
       cp_demangled_name_parse_free (result);
    				       ^
     src/gdb/cp-name-parser.y:2211:14: error: cannot convert ‘std::unique_ptr<demangle_parse_info>’ to ‘demangle_parse_info*’ in assignment
    	result = cp_demangled_name_to_comp (argv[arg], &errmsg);
    	       ^
     src/gdb/cp-name-parser.y:2219:43: error: ‘cp_demangled_name_parse_free’ was not declared in this scope
    	cp_demangled_name_parse_free (result);
    					    ^
     Makefile:2107: recipe for target 'test-cp-name-parser.o' failed
     make: *** [test-cp-name-parser.o] Error 1
    
    This commit restores it.
    
    gdb/ChangeLog:
    2017-03-14  Pedro Alves  <palves@redhat.com>
    
    	* cp-name-parser.y (cp_demangled_name_to_comp): Update comment.
    	(main): Use std::unique_ptr.  Remove calls to
    	cp_demangled_name_parse_free.

Diff:
---
 gdb/ChangeLog        |  6 ++++++
 gdb/cp-name-parser.y | 17 ++++++++---------
 2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b5edb572..608501b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2017-03-14  Pedro Alves  <palves@redhat.com>
+
+	* cp-name-parser.y (cp_demangled_name_to_comp): Update comment.
+	(main): Use std::unique_ptr.  Remove calls to
+	cp_demangled_name_parse_free.
+
 2017-03-13  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* alpha-bsd-nat.c (alphabsd_fetch_inferior_registers,
diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y
index 5278c05..70790fc 100644
--- a/gdb/cp-name-parser.y
+++ b/gdb/cp-name-parser.y
@@ -2057,10 +2057,9 @@ cp_merge_demangle_parse_infos (struct demangle_parse_info *dest,
 }
 
 /* Convert a demangled name to a demangle_component tree.  On success,
-   a structure containing the root of the new tree is returned; it must
-   be freed by calling cp_demangled_name_parse_free. On error, NULL is
-   returned, and an error message will be set in *ERRMSG (which does
-   not need to be freed).  */
+   a structure containing the root of the new tree is returned.  On
+   error, NULL is returned, and an error message will be set in
+   *ERRMSG (which does not need to be freed).  */
 
 struct std::unique_ptr<demangle_parse_info>
 cp_demangled_name_to_comp (const char *demangled_name, const char **errmsg)
@@ -2161,7 +2160,6 @@ main (int argc, char **argv)
   char buf[65536];
   int arg;
   const char *errmsg;
-  struct demangle_parse_info *result;
 
   arg = 1;
   if (argv[arg] && strcmp (argv[arg], "--debug") == 0)
@@ -2187,7 +2185,9 @@ main (int argc, char **argv)
 	      printf ("%s\n", buf);
 	    continue;
 	  }
-	result = cp_demangled_name_to_comp (str2, &errmsg);
+
+	std::unique_ptr<demangle_parse_info> result
+	  = cp_demangled_name_to_comp (str2, &errmsg);
 	if (result == NULL)
 	  {
 	    fputs (errmsg, stderr);
@@ -2196,7 +2196,6 @@ main (int argc, char **argv)
 	  }
 
 	cp_print (result->tree);
-	cp_demangled_name_parse_free (result);
 
 	free (str2);
 	if (c)
@@ -2208,7 +2207,8 @@ main (int argc, char **argv)
       }
   else
     {
-      result = cp_demangled_name_to_comp (argv[arg], &errmsg);
+      std::unique_ptr<demangle_parse_info> result
+	= cp_demangled_name_to_comp (argv[arg], &errmsg);
       if (result == NULL)
 	{
 	  fputs (errmsg, stderr);
@@ -2216,7 +2216,6 @@ main (int argc, char **argv)
 	  return 0;
 	}
       cp_print (result->tree);
-      cp_demangled_name_parse_free (result);
       putchar ('\n');
     }
   return 0;



More information about the Gdb-cvs mailing list