diff --git a/gdb/linespec.c b/gdb/linespec.c index 96f1d07..9468f26 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -278,7 +278,7 @@ struct ls_parser struct { /* Save head of input stream. */ - char *saved_arg; + const char *saved_arg; /* Head of the input stream. */ const char **stream; @@ -320,7 +320,7 @@ static CORE_ADDR linespec_expression_to_pc (const char **exp_ptr); static struct symtabs_and_lines decode_objc (struct linespec_state *self, linespec_p ls, - char **argptr); + const char **argptr); static VEC (symtab_ptr) *symtabs_from_filename (const char *); @@ -2144,7 +2144,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec_p ls) /* Parse the linespec in ARGPTR. */ static struct symtabs_and_lines -parse_linespec (linespec_parser *parser, char **argptr) +parse_linespec (linespec_parser *parser, const char **argptr) { linespec_token token; struct symtabs_and_lines values; @@ -2175,7 +2175,7 @@ parse_linespec (linespec_parser *parser, char **argptr) parser->keyword_ok = 0; parser->lexer.saved_arg = *argptr; - parser->lexer.stream = (const char **) argptr; + parser->lexer.stream = argptr; file_exception.reason = 0; /* Initialize the default symtab and line offset. */ @@ -2426,6 +2426,7 @@ decode_line_full (char **argptr, int flags, VEC (const_char_ptr) *filters = NULL; linespec_parser parser; struct linespec_state *state; + const char *copy, *orig; gdb_assert (canonical != NULL); /* The filter only makes sense for 'all'. */ @@ -2441,7 +2442,9 @@ decode_line_full (char **argptr, int flags, cleanups = make_cleanup (linespec_parser_delete, &parser); save_current_program_space (); - result = parse_linespec (&parser, argptr); + orig = copy = *argptr; + result = parse_linespec (&parser, ©); + *argptr += copy - orig; state = PARSER_STATE (&parser); gdb_assert (result.nelts == 1 || canonical->pre_expanded); @@ -2496,13 +2499,16 @@ decode_line_1 (char **argptr, int flags, struct symtabs_and_lines result; linespec_parser parser; struct cleanup *cleanups; + const char *copy, *orig; linespec_parser_new (&parser, flags, current_language, default_symtab, default_line, NULL); cleanups = make_cleanup (linespec_parser_delete, &parser); save_current_program_space (); - result = parse_linespec (&parser, argptr); + orig = copy = *argptr; + result = parse_linespec (&parser, ©); + *argptr += copy - orig; do_cleanups (cleanups); return result; @@ -2602,12 +2608,12 @@ linespec_expression_to_pc (const char **exp_ptr) the existing C++ code to let the user choose one. */ static struct symtabs_and_lines -decode_objc (struct linespec_state *self, linespec_p ls, char **argptr) +decode_objc (struct linespec_state *self, linespec_p ls, const char **argptr) { struct collect_info info; VEC (const_char_ptr) *symbol_names = NULL; struct symtabs_and_lines values; - char *new_argptr; + const char *new_argptr; struct cleanup *cleanup = make_cleanup (VEC_cleanup (const_char_ptr), &symbol_names); @@ -3053,7 +3059,7 @@ find_function_symbols (struct linespec_state *state, info.file_symtabs = file_symtabs; /* Try NAME as an Objective-C selector. */ - find_imps ((char *) name, &symbol_names); + find_imps (name, &symbol_names); if (!VEC_empty (const_char_ptr, symbol_names)) add_all_symbol_names_from_pspace (&info, NULL, symbol_names); else diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c index cf99a0f..bcce435 100644 --- a/gdb/objc-lang.c +++ b/gdb/objc-lang.c @@ -1072,7 +1072,7 @@ uniquify_strings (VEC (const_char_ptr) **strings) } /* - * Function: find_imps (char *selector, struct symbol **sym_arr) + * Function: find_imps (const char *selector, struct symbol **sym_arr) * * Input: a string representing a selector * a pointer to an array of symbol pointers @@ -1101,8 +1101,8 @@ uniquify_strings (VEC (const_char_ptr) **strings) * be the index of the first non-debuggable one). */ -char * -find_imps (char *method, VEC (const_char_ptr) **symbol_names) +const char * +find_imps (const char *method, VEC (const_char_ptr) **symbol_names) { char type = '\0'; char *class = NULL; diff --git a/gdb/objc-lang.h b/gdb/objc-lang.h index 23fac1b..2409363 100644 --- a/gdb/objc-lang.h +++ b/gdb/objc-lang.h @@ -36,7 +36,8 @@ extern char *objc_demangle (const char *mangled, int options); extern int find_objc_msgcall (CORE_ADDR pc, CORE_ADDR *new_pc); -extern char *find_imps (char *method, VEC (const_char_ptr) **symbol_names); +extern const char * + find_imps (const char *method, VEC (const_char_ptr) **symbol_names); extern struct value *value_nsstring (struct gdbarch *gdbarch, char *ptr, int len);