Constify strings in tracepoint.c, lookup_cmd and the completers.

This is sort of a continuation of Keith's parse_exp_1 constification
patch.  It started out by undoing these bits:

  @@ -754,9 +754,12 @@ validate_actionline (char **line, struct
   	  tmp_p = p;
   	  for (loc = t->base.loc; loc; loc = loc->next)
   	    {
  -	      p = tmp_p;
  -	      exp = parse_exp_1 (&p, loc->address,
  +	      const char *q;
  +
  +	      q = tmp_p;
  +	      exp = parse_exp_1 (&q, loc->address,
   				 block_for_pc (loc->address), 1);
  +	      p = (char *) q;

and progressively making more things const upwards, fixing fallout,
rinse repeat, until GDB built again (--enable-targets=all).

That ended up constifying lookup_cmd/add_cmd and (lots of) friends,
and the completers.

I didn't try to constify the command hooks themselves, because I know
upfront there are commands that write to the command string argument,
and I think I managed to stop at a nice non-hacky split point already.

I think the only non-really-super-obvious changes are
tracepoint.c:validate_actionline, and tracepoint.c:trace_dump_actions.

The rest is just mostly about 'char *' => 'const char *', 'char **'=>
'const char **', and the occasional (e.g., deprecated_cmd_warning)
case of 'char **'=> 'const char *', where/when I noticed that nothing
actually cares about the pointer to pointer output.

Tested on x86_64 Fedora 17, native and gdbserver.

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

	* ada-lang.c (struct add_partial_datum) <text, text0, word>: Make
	fields const.
	(ada_make_symbol_completion_list): Make "text0" parameter const.
	* ax-gdb.c (agent_eval_command_one): Make "exp" parameter const.
	* breakpoint.c (condition_completer): Make "text" and "word"
	parameters const.  Adjust.
	(check_tracepoint_command): Adjust to validate_actionline
	prototype change.
	(catch_syscall_completer): Make "text" and "word" parameters
	const.
	* cli/cli-cmds.c (show_user): Make "comname" local const.
	(valid_command_p): Make "command" parameter const.
	(alias_command): Make "alias_prefix" and "command_prefix" locals
	const.
	* cli/cli-decode.c (add_cmd): Make "name" parameter const.
	(add_alias_cmd): Make "name" and "oldname" parameters const.
	Adjust.  No longer make copy of OLDNAME.
	(add_prefix_cmd, add_abbrev_prefix_cmd, add_set_or_show_cmd)
	(add_setshow_cmd_full, add_setshow_enum_cmd)
	(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
	(add_setshow_filename_cmd, add_setshow_string_cmd)
	(add_setshow_string_noescape_cmd)
	(add_setshow_optional_filename_cmd, add_setshow_integer_cmd)
	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd)
	(add_setshow_zuinteger_unlimited_cmd, add_setshow_zuinteger_cmd)
	(delete_cmd, add_info, add_info_alias, add_com, add_com_alias):
	Make "name" parameter const.
	(help_cmd): Rename "command" parameter to "arg".  New const local
	"command".
	(find_cmd): Make "command" parameter const.
	(lookup_cmd_1): Make "text" parameter pointer to const.  Adjust to
	deprecated_cmd_warning prototype change.
	(undef_cmd_error): Make "cmdtype" parameter const.
	(lookup_cmd): Make "line" parameter const.
	(deprecated_cmd_warning): Change type of "text" parameter to
	pointer to const char, from pointer to pointer to char.  Adjust.
	(lookup_cmd_composition): Make "text" parameter const.
	(complete_on_cmdlist, complete_on_enum): Make "text" and "word"
	parameters const.
	* cli/cli-decode.h (struct cmd_list_element) <name>: Make field
	const.
	* cli/cli-script.c (validate_comname): Make "tem" local const.
	(define_command): New const local "tem_c".  Use it in calls to
	lookup_cmd.
	(document_command): Make "tem" and "comfull" locals const.
	(show_user_1): Make "prefix" and "name" parameters const.
	* cli-script.h (show_user_1): Make "prefix" and "name" parameters
	const.
	* command.h (add_cmd, add_alias_cmd, add_prefix_cmd)
	(add_abbrev_prefix_cmd, completer_ftype, lookup_cmd, lookup_cmd_1)
	(deprecated_cmd_warning, lookup_cmd_composition, add_com)
	(add_com_alias, add_info, add_info_alias, complete_on_cmdlist)
	(complete_on_enum, add_setshow_enum_cmd)
	(add_setshow_auto_boolean_cmd, add_setshow_boolean_cmd)
	(add_setshow_filename_cmd, add_setshow_string_cmd)
	(add_setshow_string_noescape_cmd)
	(add_setshow_optional_filename_cmd, add_setshow_integer_cmd)
	(add_setshow_uinteger_cmd, add_setshow_zinteger_cmd)
	(add_setshow_zuinteger_cmd, add_setshow_zuinteger_unlimited_cmd):
	Change prototypes, constifying strings.
	* completer.c (noop_completer, filename_completer): Make "text"
	and "prefix" parameters const.
	(location_completer, expression_completer)
	(complete_line_internal): Make "text" and "prefix" parameters
	const and adjust.
	(command_completer, signal_completer): Make "text" and "prefix"
	parameters const.
	* completer.h (noop_completer, filename_completer)
	(expression_completer, location_completer, command_completer)
	(signal_completer): Change prototypes.
	* corefile.c (complete_set_gnutarget): Make "text" and "word"
	parameters const.
	* cp-abi.c (cp_abi_completer): Likewise.
	* expression.h (parse_expression_for_completion): Change
	prototype.
	* f-lang.c (f_make_symbol_completion_list): Make "text" and "word"
	parameters const.
	* infcmd.c (_initialize_infcmd): Make "cmd_name" local const.
	* infrun.c (handle_completer): Make "text" and "word" parameters
	const.
	* interps.c (interpreter_completer): Make "text" and "word"
	parameters const.
	* language.h (struct language_defn)
	<la_make_symbol_completion_list>: Make "text" and "word"
	parameters const.
	* parse.c (parse_exp_1): Move const hack to parse_exp_in_context.
	(parse_exp_in_context): Rename to ...
	(parse_exp_in_context_1): ... this.
	(parse_exp_in_context): Reimplement, with const hack from
	parse_exp_1.
	(parse_expression_for_completion): Make "string" parameter const.
	* printcmd.c (decode_format): Make "string_ptr" parameter pointer
	to pointer to const char.  Adjust.
	(print_command_1): Make "exp" parameter const.
	(output_command): Rename to ...
	(output_command_const): ... this.  Make "exp" parameter const.
	(output_command): Reimplement.
	(x_command): Adjust.
	(display_command): Rename "exp" parameter to "arg".  New "exp"
	local, const version of "arg".
	* python/py-auto-load.c (gdbpy_initialize_auto_load): Make
	"cmd_name" local const.
	* python/py-cmd.c (cmdpy_destroyer): Cast const away in xfree
	call.
	(cmdpy_completer): Make "text" and "word" parameters const.
	(gdbpy_parse_command_name): Make "prefix_text2" local const.
	* python/py-param.c (add_setshow_generic): Make "tmp_name" local
	const.
	* remote.c (_initialize_remote): Make "cmd_name" local const.
	* symtab.c (language_search_unquoted_string): Make "text" and "p"
	parameters const.  Adjust.
	(completion_list_add_fields): Make "sym_text", "text" and "word"
	parameters const.
	(struct add_name_data) <sym_text, text, word>: Make fields const.
	(default_make_symbol_completion_list_break_on): Make "text" and
	"word" parameters const.  Adjust locals.
	(default_make_symbol_completion_list)
	(make_symbol_completion_list, make_symbol_completion_type)
	(make_symbol_completion_list_fn): Make "text" and "word"
	parameters const.
	(make_file_symbol_completion_list): Make "text", "word" and
	"srcfile" parameters const.  Adjust locals.
	(add_filename_to_list): Make "text" and "word" parameters const.
	(struct add_partial_filename_data) <text, word>: Make fields
	const.
	(make_source_files_completion_list): Make "text" and "word"
	parameters const.
	* symtab.h (default_make_symbol_completion_list_break_on)
	(default_make_symbol_completion_list, make_symbol_completion_list)
	(make_symbol_completion_type enum type_code)
	(make_symbol_completion_list_fn make_file_symbol_completion_list)
	(make_source_files_completion_list): Change prototype.
	* top.c (execute_command): Adjust to pass pointer to pointer to
	const char to lookup_cmd, and to deprecated_cmd_warning prototype
	change.
	(set_verbose): Make "cmdname" local const.
	* tracepoint.c (decode_agent_options): Make "exp" parameter const,
	and adjust.
	(validate_actionline): Make "line" parameter a pointer to const
	char, and adjust.
	(encode_actions_1): Make "action_exp" local const, and adjust.
	(encode_actions): Adjust.
	(replace_comma): Delete.
	(trace_dump_actions): Make "action_exp" and "next_comma" locals
	const, and adjust.  Don't frob the action string while splitting
	it at commas.  Instead, make a copy of each split substring in
	turn.
	(trace_dump_command): Adjust to validate_actionline prototype
	change.
	* tracepoint.h (decode_agent_options, decode_agent_options)
	(encode_actions, validate_actionline): Change prototypes.
	* valprint.h (output_command): Delete declaration.
	(output_command_const): Declare.
	* value.c (function_destroyer): Cast const away in xfree call.
This commit is contained in:
Pedro Alves
2013-03-13 18:34:55 +00:00
parent 6dd24dfaec
commit 6f937416b9
33 changed files with 462 additions and 256 deletions

View File

@@ -119,22 +119,22 @@ struct cmd_list_element;
extern int valid_user_defined_cmd_name_p (const char *name);
extern struct cmd_list_element *add_cmd (char *, enum command_class,
extern struct cmd_list_element *add_cmd (const char *, enum command_class,
void (*fun) (char *, int), char *,
struct cmd_list_element **);
extern struct cmd_list_element *add_alias_cmd (char *, char *,
extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
enum command_class, int,
struct cmd_list_element **);
extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class,
extern struct cmd_list_element *add_prefix_cmd (const char *, enum command_class,
void (*fun) (char *, int),
char *,
struct cmd_list_element **,
char *, int,
struct cmd_list_element **);
extern struct cmd_list_element *add_abbrev_prefix_cmd (char *,
extern struct cmd_list_element *add_abbrev_prefix_cmd (const char *,
enum command_class,
void (*fun) (char *,
int),
@@ -156,7 +156,7 @@ extern void set_cmd_sfunc (struct cmd_list_element *cmd,
cmd_sfunc_ftype *sfunc);
typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
char *, char *);
const char *, const char *);
extern void set_cmd_completer (struct cmd_list_element *, completer_ftype *);
@@ -183,11 +183,11 @@ extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
/* Flag for an ambiguous cmd_list result. */
#define CMD_LIST_AMBIGUOUS ((struct cmd_list_element *) -1)
extern struct cmd_list_element *lookup_cmd (char **,
extern struct cmd_list_element *lookup_cmd (const char **,
struct cmd_list_element *, char *,
int, int);
extern struct cmd_list_element *lookup_cmd_1 (char **,
extern struct cmd_list_element *lookup_cmd_1 (const char **,
struct cmd_list_element *,
struct cmd_list_element **,
int);
@@ -195,31 +195,31 @@ extern struct cmd_list_element *lookup_cmd_1 (char **,
extern struct cmd_list_element *deprecate_cmd (struct cmd_list_element *,
char * );
extern void deprecated_cmd_warning (char **);
extern void deprecated_cmd_warning (const char *);
extern int lookup_cmd_composition (char *text,
extern int lookup_cmd_composition (const char *text,
struct cmd_list_element **alias,
struct cmd_list_element **prefix_cmd,
struct cmd_list_element **cmd);
extern struct cmd_list_element *add_com (char *, enum command_class,
extern struct cmd_list_element *add_com (const char *, enum command_class,
void (*fun) (char *, int),
char *);
extern struct cmd_list_element *add_com_alias (char *, char *,
extern struct cmd_list_element *add_com_alias (const char *, const char *,
enum command_class, int);
extern struct cmd_list_element *add_info (char *,
extern struct cmd_list_element *add_info (const char *,
void (*fun) (char *, int),
char *);
extern struct cmd_list_element *add_info_alias (char *, char *, int);
extern struct cmd_list_element *add_info_alias (const char *, char *, int);
extern VEC (char_ptr) *complete_on_cmdlist (struct cmd_list_element *,
char *, char *, int);
const char *, const char *, int);
extern VEC (char_ptr) *complete_on_enum (const char *const *enumlist,
char *, char *);
const char *, const char *);
/* Functions that implement commands about CLI commands. */
@@ -237,7 +237,7 @@ typedef void (show_value_ftype) (struct ui_file *file,
instead print the value out directly. */
extern show_value_ftype deprecated_show_value_hack;
extern void add_setshow_enum_cmd (char *name,
extern void add_setshow_enum_cmd (const char *name,
enum command_class class,
const char *const *enumlist,
const char **var,
@@ -249,7 +249,7 @@ extern void add_setshow_enum_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_auto_boolean_cmd (char *name,
extern void add_setshow_auto_boolean_cmd (const char *name,
enum command_class class,
enum auto_boolean *var,
const char *set_doc,
@@ -260,7 +260,7 @@ extern void add_setshow_auto_boolean_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_boolean_cmd (char *name,
extern void add_setshow_boolean_cmd (const char *name,
enum command_class class,
int *var,
const char *set_doc, const char *show_doc,
@@ -270,7 +270,7 @@ extern void add_setshow_boolean_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_filename_cmd (char *name,
extern void add_setshow_filename_cmd (const char *name,
enum command_class class,
char **var,
const char *set_doc,
@@ -281,7 +281,7 @@ extern void add_setshow_filename_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_string_cmd (char *name,
extern void add_setshow_string_cmd (const char *name,
enum command_class class,
char **var,
const char *set_doc,
@@ -293,7 +293,7 @@ extern void add_setshow_string_cmd (char *name,
struct cmd_list_element **show_list);
extern struct cmd_list_element *add_setshow_string_noescape_cmd
(char *name,
(const char *name,
enum command_class class,
char **var,
const char *set_doc,
@@ -304,7 +304,7 @@ extern struct cmd_list_element *add_setshow_string_noescape_cmd
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_optional_filename_cmd (char *name,
extern void add_setshow_optional_filename_cmd (const char *name,
enum command_class class,
char **var,
const char *set_doc,
@@ -315,7 +315,7 @@ extern void add_setshow_optional_filename_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_integer_cmd (char *name,
extern void add_setshow_integer_cmd (const char *name,
enum command_class class,
int *var,
const char *set_doc,
@@ -326,7 +326,7 @@ extern void add_setshow_integer_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_uinteger_cmd (char *name,
extern void add_setshow_uinteger_cmd (const char *name,
enum command_class class,
unsigned int *var,
const char *set_doc,
@@ -337,7 +337,7 @@ extern void add_setshow_uinteger_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_zinteger_cmd (char *name,
extern void add_setshow_zinteger_cmd (const char *name,
enum command_class class,
int *var,
const char *set_doc,
@@ -348,7 +348,7 @@ extern void add_setshow_zinteger_cmd (char *name,
struct cmd_list_element **set_list,
struct cmd_list_element **show_list);
extern void add_setshow_zuinteger_cmd (char *name,
extern void add_setshow_zuinteger_cmd (const char *name,
enum command_class class,
unsigned int *var,
const char *set_doc,
@@ -360,7 +360,7 @@ extern void add_setshow_zuinteger_cmd (char *name,
struct cmd_list_element **show_list);
extern void
add_setshow_zuinteger_unlimited_cmd (char *name,
add_setshow_zuinteger_unlimited_cmd (const char *name,
enum command_class class,
int *var,
const char *set_doc,