Fix completer.c FIXME, and invalid pointer to pointer conversion.
authorPedro Alves <palves@redhat.com>
Wed, 13 Mar 2013 18:38:12 +0000 (18:38 +0000)
committerPedro Alves <palves@redhat.com>
Wed, 13 Mar 2013 18:38:12 +0000 (18:38 +0000)
commit10217050c886b4aaee32e97b99c7b96ba389581d
tree5fb8f07f627f676b6c036f097937c04698acd4cb
parent4fa7e2ff221c6b8c129e5e0486112c578f628ded
Fix completer.c FIXME, and invalid pointer to pointer conversion.

As mentioned in the previous patch, I grepped for "\*\*) &" and found
one hit in completer.c.

I was about to post a patch that simply made
current_demangling_style_string const, and cast away constness at the
xfree site.  However, looking deeper, it seem to be there's a lot of
dead code in the file.

First, all external callers of set_demangling_style are found in the
stabs reader, commented out for over 12 years:

  http://sourceware.org/ml/gdb-patches/2000-12/msg00214.html

I don't think it's likely we'll ever make the older mangling schemes
work for stabs.  If we do, we can rediscuss the approach then.

Then, set_demangling_command has special handling for unknown
demangling styles, but "set demangle-style" is an enum command, and
with those, the user can only specify a known enumeration value, by
design:

  (gdb) set demangle-style gangnam-style
  Undefined item: "gangnam-style".

This patch removes all that dead code, then makes
current_demangling_style_string point to an element of
demangling_style_names, as the FIXME suggests, and then makes
current_demangling_style_string, removing the need for the 'const char
**' cast.

gdb/
2013-03-13  Pedro Alves  <palves@redhat.com>

* dbxread.c (read_ofile_symtab, process_one_symbol): Remove
commented out code.
* demangle.c (current_demangling_style_string): Make it const.
(set_demangling_command): Assert the demangling style is known.
Remove all handling of unknown styles.  Set
'current_demangling_style_string' to an element of the
demangling_style_names array.
(set_demangling_style): Delete.
(_initialize_demangler): Set current_demangling_style_string to the
element of the demangling_style_names array that corresponds to
the default demangling style.  Remove FIXME note.  Don't call
set_demangling_style.
* gdb-demangle.h (set_demangling_style): Remove declaration.
gdb/ChangeLog
gdb/dbxread.c
gdb/demangle.c
gdb/gdb-demangle.h