From 10217050c886b4aaee32e97b99c7b96ba389581d Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 13 Mar 2013 18:38:12 +0000 Subject: 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 * 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/gdb-demangle.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'gdb/gdb-demangle.h') diff --git a/gdb/gdb-demangle.h b/gdb/gdb-demangle.h index 1e91414..cd4e27c 100644 --- a/gdb/gdb-demangle.h +++ b/gdb/gdb-demangle.h @@ -28,9 +28,6 @@ extern int demangle; DEMANGLE is zero, names are printed raw, i.e. DEMANGLE controls. */ extern int asm_demangle; -/* Fake a "set demangle-style" command. */ -extern void set_demangling_style (char *); - /* Check if a character is one of the commonly used C++ marker characters. */ extern int is_cplus_marker (int); -- cgit v1.1