aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog90
-rw-r--r--gdb/ada-lang.c67
-rw-r--r--gdb/ada-lang.h2
-rw-r--r--gdb/ada-typeprint.c8
-rw-r--r--gdb/arm-wince-tdep.c2
-rw-r--r--gdb/ax-gdb.c4
-rw-r--r--gdb/buildsym.c4
-rw-r--r--gdb/buildsym.h2
-rw-r--r--gdb/c-lang.c2
-rw-r--r--gdb/c-typeprint.c14
-rw-r--r--gdb/coffread.c11
-rw-r--r--gdb/completer.c4
-rw-r--r--gdb/cp-support.c2
-rw-r--r--gdb/cp-valprint.c6
-rw-r--r--gdb/dbxread.c17
-rw-r--r--gdb/defs.h2
-rw-r--r--gdb/dwarf2read.c8
-rw-r--r--gdb/eval.c6
-rw-r--r--gdb/f-lang.c2
-rw-r--r--gdb/f-lang.h3
-rw-r--r--gdb/f-valprint.c6
-rw-r--r--gdb/gdbarch.c4
-rw-r--r--gdb/gdbarch.h4
-rwxr-xr-xgdb/gdbarch.sh2
-rw-r--r--gdb/gdbtypes.c14
-rw-r--r--gdb/gdbtypes.h22
-rw-r--r--gdb/gnu-v2-abi.c11
-rw-r--r--gdb/gnu-v3-abi.c4
-rw-r--r--gdb/i386-sol2-tdep.c4
-rw-r--r--gdb/i386-tdep.c2
-rw-r--r--gdb/jv-lang.c22
-rw-r--r--gdb/jv-lang.h4
-rw-r--r--gdb/jv-typeprint.c6
-rw-r--r--gdb/jv-valprint.c6
-rw-r--r--gdb/linespec.c5
-rw-r--r--gdb/m32c-tdep.c4
-rw-r--r--gdb/mdebugread.c16
-rw-r--r--gdb/minsyms.c4
-rw-r--r--gdb/objc-lang.c22
-rw-r--r--gdb/p-exp.y2
-rw-r--r--gdb/p-lang.c2
-rw-r--r--gdb/p-lang.h2
-rw-r--r--gdb/p-typeprint.c4
-rw-r--r--gdb/p-valprint.c4
-rw-r--r--gdb/printcmd.c2
-rw-r--r--gdb/python/py-frame.c2
-rw-r--r--gdb/python/py-type.c4
-rw-r--r--gdb/solib-frv.c6
-rw-r--r--gdb/sparc-sol2-tdep.c4
-rw-r--r--gdb/sparc-tdep.h2
-rw-r--r--gdb/stabsread.c48
-rw-r--r--gdb/stabsread.h2
-rw-r--r--gdb/stack.c6
-rw-r--r--gdb/stack.h2
-rw-r--r--gdb/symtab.c36
-rw-r--r--gdb/symtab.h17
-rw-r--r--gdb/tracepoint.c3
-rw-r--r--gdb/typeprint.c2
-rw-r--r--gdb/utils.c2
-rw-r--r--gdb/valarith.c2
-rw-r--r--gdb/valops.c12
-rw-r--r--gdb/value.h2
-rw-r--r--gdb/varobj.c4
-rw-r--r--gdb/xcoffread.c43
64 files changed, 367 insertions, 266 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bf6a428..5adc587 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,93 @@
+2012-02-06 Doug Evans <dje@google.com>
+
+ * gdbtypes.h (struct main_type): Change type of name,tag_name,
+ and fields.name members from char * to const char *. All uses updated.
+ (struct cplus_struct_type): Change type of fn_fieldlists.name member
+ from char * to const char *. All uses updated.
+ (type_name_no_tag): Update.
+ (lookup_unsigned_typename, lookup_signed_typename): Update.
+ * gdbtypes.c (type_name_no_tag): Change result type
+ from char * to const char *. All callers updated.
+ (lookup_unsigned_typename, lookup_signed_typename): Change type of
+ name parameter from char * to const char *.
+ * symtab.h (struct cplus_specific): Change type of demangled_name
+ member from char * to const char *. All uses updated.
+ (struct general_symbol_info): Change type of name and
+ mangled_lang.demangled_name members from char * to const char *.
+ All uses updated.
+ (symbol_get_demangled_name, symbol_natural_name): Update.
+ (symbol_demangled_name, symbol_search_name): Update.
+ * symtab.c (symbol_get_demangled_name): Change result type
+ from char * to const char *. All callers updated.
+ (symbol_natural_name, symbol_demangled_name): Ditto.
+ (symbol_search_name): Ditto.
+ (completion_list_add_name): Change type of symname,sym_text,
+ text,word parameters from char * to const char *.
+ (completion_list_objc_symbol): Change type of sym_text,
+ text,word parameters from char * to const char *.
+ * ada-lang.c (find_struct_field): Change type of name parameter
+ from char * to const char *.
+ (encoded_ordered_before): Similarly for N0,N1 parameters.
+ (old_renaming_is_invisible): Similarly for function_name parameter.
+ (ada_type_name): Change result type from char * to const char *.
+ All callers updated.
+ * ada-lang.h (ada_type_name): Update.
+ * buildsym.c (hashname): Change type of name parameter
+ from char * to const char *.
+ * buildsym.h (hashname): Update.
+ * dbxread.c (end_psymtab): Change type of include_list parameter
+ from char ** to const char **.
+ * dwarf2read.c (determine_prefix): Change result type
+ from char * to const char *. All callers updated.
+ * f-lang.c (find_common_for_function): Change type of name, funcname
+ parameters from char * to const char *.
+ * f-lang.c (find_common_for_function): Update.
+ * f-valprint.c (list_all_visible_commons): Change type of funcname
+ parameters from char * to const char *.
+ * gdbarch.sh (static_transform_name): Change type of name parameter
+ and result from char * to const char *.
+ * gdbarch.c: Regenerate.
+ * gdbarch.h: Regenerate.
+ * i386-sol2-tdep.c (i386_sol2_static_transform_name): Change type
+ of name parameter from char * to const char *.
+ * jv-lang.c (java_primitive_type_from_name): Ditto.
+ (java_demangled_signature_length): Similarly for signature parameter.
+ (java_demangled_signature_copy): Ditto.
+ (java_demangle_type_signature): Ditto.
+ * jv-lang.h (java_primitive_type_from_name): Update.
+ (java_demangle_type_signature): Update.
+ * objc-lang.c (specialcmp): Change type of a,b parameters
+ from char * to const char *.
+ * p-lang.c (is_pascal_string_type): Change type of arrayname parameter
+ from char * to const char *. All callers updated.
+ * p-lang.h (is_pascal_string_type): Update.
+ * solib-frv.c (find_canonical_descriptor_in_load_object): Change type
+ of name parameter from char * to const char *.
+ * sparc-sol2-tdep.c (sparc_sol2_static_transform_name): Ditto.
+ * utils.c (fprintf_symbol_filtered): Ditto.
+ * defs.h (fprintf_symbol_filtered): Update.
+ * sparc-tdep.h (sparc_sol2_static_transform_name): Update.
+ * stabsread.h (end_psymtab): Update.
+ * stack.c (find_frame_funname): Change type of funname parameter
+ from char ** to const char **.
+ * stack.h (find_frame_funname): Update.
+ * typeprint.c (type_print): Change type of varstring parameter
+ from char * to const char *.
+ * value.h (type_print): Update.
+ * xcoffread.c (xcoff_start_psymtab): Change type of filename parameter
+ from char * to const char *. All callers updated.
+ (xcoff_end_psymtab): Change type of include_list parameter
+ from char ** to const char **. All callers updated.
+ (swap_sym): Similarly for name parameter. All callers updated.
+ * coffread.c (patch_type): Add (char*) cast to xfree parameter.
+ Use xstrdup.
+ (process_coff_symbol): Use xstrdup.
+ * stabsread.c (stabs_method_name_from_physname): Renamed from
+ update_method_name_from_physname. Change result type from void
+ to char *. All callers updated.
+ (read_member_functions): In has_destructor case, store name in objfile
+ obstack instead of malloc space. In !has_stub case, fix mem leak.
+
2012-02-06 Luca Pizzamiglio <luca.pizzamiglio@gmail.com>
* configure: Rebuild.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 6ea013c..49178cf 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -223,7 +223,7 @@ static struct value *ada_search_struct_field (char *, struct value *, int,
static struct value *ada_value_primitive_field (struct value *, int, int,
struct type *);
-static int find_struct_field (char *, struct type *, int,
+static int find_struct_field (const char *, struct type *, int,
struct type **, int *, int *, int *, int *);
static struct value *ada_to_fixed_value_create (struct type *, CORE_ADDR,
@@ -1370,7 +1370,7 @@ ada_fixup_array_indexes_type (struct type *index_desc_type)
/* Fixup each field of INDEX_DESC_TYPE. */
for (i = 0; i < TYPE_NFIELDS (index_desc_type); i++)
{
- char *name = TYPE_FIELD_NAME (index_desc_type, i);
+ const char *name = TYPE_FIELD_NAME (index_desc_type, i);
struct type *raw_type = ada_check_typedef (ada_find_any_type (name));
if (raw_type)
@@ -1962,8 +1962,8 @@ ada_is_unconstrained_packed_array_type (struct type *type)
static long
decode_packed_array_bitsize (struct type *type)
{
- char *raw_name;
- char *tail;
+ const char *raw_name;
+ const char *tail;
long bits;
/* Access to arrays implemented as fat pointers are encoded as a typedef
@@ -2042,9 +2042,9 @@ constrained_packed_array_type (struct type *type, long *elt_bits)
static struct type *
decode_constrained_packed_array_type (struct type *type)
{
- char *raw_name = ada_type_name (ada_check_typedef (type));
+ const char *raw_name = ada_type_name (ada_check_typedef (type));
char *name;
- char *tail;
+ const char *tail;
struct type *shadow_type;
long bits;
@@ -3407,7 +3407,7 @@ ada_resolve_function (struct ada_symbol_info syms[],
such symbols by their trailing number (__N or $N). */
static int
-encoded_ordered_before (char *N0, char *N1)
+encoded_ordered_before (const char *N0, const char *N1)
{
if (N1 == NULL)
return 0;
@@ -4248,8 +4248,8 @@ lesseq_defined_than (struct symbol *sym0, struct symbol *sym1)
{
struct type *type0 = SYMBOL_TYPE (sym0);
struct type *type1 = SYMBOL_TYPE (sym1);
- char *name0 = SYMBOL_LINKAGE_NAME (sym0);
- char *name1 = SYMBOL_LINKAGE_NAME (sym1);
+ const char *name0 = SYMBOL_LINKAGE_NAME (sym0);
+ const char *name1 = SYMBOL_LINKAGE_NAME (sym1);
int len0 = strlen (name0);
return
@@ -4380,7 +4380,7 @@ add_symbols_from_enclosing_procs (struct obstack *obstackp,
static int
is_nondebugging_type (struct type *type)
{
- char *name = ada_type_name (type);
+ const char *name = ada_type_name (type);
return (name != NULL && strcmp (name, "<variable, no debug info>") == 0);
}
@@ -4411,8 +4411,8 @@ ada_identical_enum_types_p (struct type *type1, struct type *type2)
suffix). */
for (i = 0; i < TYPE_NFIELDS (type1); i++)
{
- char *name_1 = TYPE_FIELD_NAME (type1, i);
- char *name_2 = TYPE_FIELD_NAME (type2, i);
+ const char *name_1 = TYPE_FIELD_NAME (type1, i);
+ const char *name_2 = TYPE_FIELD_NAME (type2, i);
int len_1 = strlen (name_1);
int len_2 = strlen (name_2);
@@ -4647,7 +4647,7 @@ is_package_name (const char *name)
not visible from FUNCTION_NAME. */
static int
-old_renaming_is_invisible (const struct symbol *sym, char *function_name)
+old_renaming_is_invisible (const struct symbol *sym, const char *function_name)
{
char *scope;
@@ -4717,7 +4717,7 @@ remove_irrelevant_renamings (struct ada_symbol_info *syms,
int nsyms, const struct block *current_block)
{
struct symbol *current_function;
- char *current_function_name;
+ const char *current_function_name;
int i;
int is_new_style_renaming;
@@ -5854,7 +5854,7 @@ ada_make_symbol_completion_list (char *text0, char *word)
static int
ada_is_dispatch_table_ptr_type (struct type *type)
{
- char *name;
+ const char *name;
if (TYPE_CODE (type) != TYPE_CODE_PTR)
return 0;
@@ -6367,7 +6367,7 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
Returns 1 if found, 0 otherwise. */
static int
-find_struct_field (char *name, struct type *type, int offset,
+find_struct_field (const char *name, struct type *type, int offset,
struct type **field_type_p,
int *byte_offset_p, int *bit_offset_p, int *bit_size_p,
int *index_p)
@@ -6389,7 +6389,7 @@ find_struct_field (char *name, struct type *type, int offset,
{
int bit_pos = TYPE_FIELD_BITPOS (type, i);
int fld_offset = offset + bit_pos / 8;
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name == NULL)
continue;
@@ -6466,7 +6466,7 @@ ada_search_struct_field (char *name, struct value *arg, int offset,
type = ada_check_typedef (type);
for (i = 0; i < TYPE_NFIELDS (type); i += 1)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name == NULL)
continue;
@@ -6725,7 +6725,7 @@ ada_lookup_struct_elt_type (struct type *type, char *name, int refok,
for (i = 0; i < TYPE_NFIELDS (type); i += 1)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
struct type *t;
int disp;
@@ -6764,7 +6764,7 @@ ada_lookup_struct_elt_type (struct type *type, char *name, int refok,
NOT wrapped in a struct, since the compiler sometimes
generates these for unchecked variant types. Revisit
if the compiler changes this practice. */
- char *v_field_name = TYPE_FIELD_NAME (field_type, j);
+ const char *v_field_name = TYPE_FIELD_NAME (field_type, j);
disp = 0;
if (v_field_name != NULL
&& field_name_match (v_field_name, name))
@@ -7030,7 +7030,7 @@ find_old_style_renaming_symbol (const char *name, struct block *block)
qualified. This means we need to prepend the function name
as well as adding the ``___XR'' suffix to build the name of
the associated renaming symbol. */
- char *function_name = SYMBOL_LINKAGE_NAME (function_sym);
+ const char *function_name = SYMBOL_LINKAGE_NAME (function_sym);
/* Function names sometimes contain suffixes used
for instance to qualify nested subprograms. When building
the XR type name, we need to make sure that this suffix is
@@ -7110,7 +7110,7 @@ ada_prefer_type (struct type *type0, struct type *type1)
/* The name of TYPE, which is either its TYPE_NAME, or, if that is
null, its TYPE_TAG_NAME. Null if TYPE is null. */
-char *
+const char *
ada_type_name (struct type *type)
{
if (type == NULL)
@@ -7137,7 +7137,7 @@ find_parallel_type_by_descriptive_type (struct type *type, const char *name)
result = TYPE_DESCRIPTIVE_TYPE (type);
while (result != NULL)
{
- char *result_name = ada_type_name (result);
+ const char *result_name = ada_type_name (result);
if (result_name == NULL)
{
@@ -7189,7 +7189,8 @@ ada_find_parallel_type_with_name (struct type *type, const char *name)
struct type *
ada_find_parallel_type (struct type *type, const char *suffix)
{
- char *name, *typename = ada_type_name (type);
+ char *name;
+ const char *typename = ada_type_name (type);
int len;
if (typename == NULL)
@@ -7895,7 +7896,7 @@ ada_to_fixed_type_1 (struct type *type, const gdb_byte *valaddr,
If there is, then it provides the actual size of our type. */
else if (ada_type_name (fixed_record_type) != NULL)
{
- char *name = ada_type_name (fixed_record_type);
+ const char *name = ada_type_name (fixed_record_type);
char *xvz_name = alloca (strlen (name) + 7 /* "___XVZ\0" */);
int xvz_found = 0;
LONGEST size;
@@ -8090,7 +8091,7 @@ ada_check_typedef (struct type *type)
return type;
else
{
- char *name = TYPE_TAG_NAME (type);
+ const char *name = TYPE_TAG_NAME (type);
struct type *type1 = ada_find_any_type (name);
if (type1 == NULL)
@@ -8870,7 +8871,7 @@ aggregate_assign_from_choices (struct value *container,
else
{
int ind;
- char *name;
+ const char *name;
switch (op)
{
@@ -9879,7 +9880,7 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
else if (discrete_type_p (type_arg))
{
struct type *range_type;
- char *name = ada_type_name (type_arg);
+ const char *name = ada_type_name (type_arg);
range_type = NULL;
if (name != NULL && TYPE_CODE (type_arg) != TYPE_CODE_ENUM)
@@ -10411,7 +10412,7 @@ get_int_var_value (char *name, int *flag)
static struct type *
to_fixed_range_type (struct type *raw_type, struct value *dval)
{
- char *name;
+ const char *name;
struct type *base_type;
char *subtype_info;
@@ -10534,8 +10535,8 @@ ada_is_modular_type (struct type *type)
int
ada_modulus_from_name (struct type *type, ULONGEST *modulus)
{
- char *name = ada_type_name (type);
- char *suffix;
+ const char *name = ada_type_name (type);
+ const char *suffix;
int k;
LONGEST U;
@@ -10781,7 +10782,7 @@ static int
is_known_support_routine (struct frame_info *frame)
{
struct symtab_and_line sal;
- char *func_name;
+ const char *func_name;
enum language func_lang;
int i;
@@ -10884,7 +10885,7 @@ ada_unhandled_exception_name_addr_from_raise (void)
while (fi != NULL)
{
- char *func_name;
+ const char *func_name;
enum language func_lang;
find_frame_funname (fi, &func_name, &func_lang, NULL);
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 375fab0..2a6cd57 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -322,7 +322,7 @@ extern struct type *ada_template_to_fixed_record_type_1 (struct type *type,
extern int ada_name_prefix_len (const char *);
-extern char *ada_type_name (struct type *);
+extern const char *ada_type_name (struct type *);
extern struct type *ada_find_parallel_type (struct type *,
const char *suffix);
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
index 97ab937..5599278 100644
--- a/gdb/ada-typeprint.c
+++ b/gdb/ada-typeprint.c
@@ -76,7 +76,7 @@ decoded_type_name (struct type *type)
return NULL;
else
{
- char *raw_name = ada_type_name (type);
+ const char *raw_name = ada_type_name (type);
char *s, *q;
if (name_buffer == NULL || name_buffer_len <= strlen (raw_name))
@@ -223,9 +223,9 @@ print_dynamic_range_bound (struct type *type, const char *name, int name_len,
static void
print_range_type (struct type *raw_type, struct ui_file *stream)
{
- char *name;
+ const char *name;
struct type *base_type;
- char *subtype_info;
+ const char *subtype_info;
gdb_assert (raw_type != NULL);
name = TYPE_NAME (raw_type);
@@ -810,7 +810,7 @@ ada_print_type (struct type *type0, const char *varstring,
print_fixed_point_type (type, stream);
else
{
- char *name = ada_type_name (type);
+ const char *name = ada_type_name (type);
if (!ada_is_range_type_name (name))
fprintf_filtered (stream, _("<%d-byte integer>"),
diff --git a/gdb/arm-wince-tdep.c b/gdb/arm-wince-tdep.c
index dabdf9e..5463f6a 100644
--- a/gdb/arm-wince-tdep.c
+++ b/gdb/arm-wince-tdep.c
@@ -44,7 +44,7 @@ arm_pe_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
ULONGEST indirect;
struct minimal_symbol *indsym;
- char *symname;
+ const char *symname;
CORE_ADDR next_pc;
/* The format of an ARM DLL trampoline is:
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
index 31e91b9..739677f 100644
--- a/gdb/ax-gdb.c
+++ b/gdb/ax-gdb.c
@@ -1477,7 +1477,7 @@ gen_struct_ref_recursive (struct expression *exp, struct agent_expr *ax,
for (i = TYPE_NFIELDS (type) - 1; i >= nbases; i--)
{
- char *this_name = TYPE_FIELD_NAME (type, i);
+ const char *this_name = TYPE_FIELD_NAME (type, i);
if (this_name)
{
@@ -1625,7 +1625,7 @@ gen_struct_elt_for_reference (struct expression *exp,
for (i = TYPE_NFIELDS (t) - 1; i >= TYPE_N_BASECLASSES (t); i--)
{
- char *t_field_name = TYPE_FIELD_NAME (t, i);
+ const char *t_field_name = TYPE_FIELD_NAME (t, i);
if (t_field_name && strcmp (t_field_name, fieldname) == 0)
{
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 38bde22..a7f141e 100644
--- a/gdb/buildsym.c
+++ b/gdb/buildsym.c
@@ -151,7 +151,7 @@ struct symbol *
find_symbol_in_list (struct pending *list, char *name, int length)
{
int j;
- char *pp;
+ const char *pp;
while (list != NULL)
{
@@ -1251,7 +1251,7 @@ pop_context (void)
/* Compute a small integer hash code for the given name. */
int
-hashname (char *name)
+hashname (const char *name)
{
return (hash(name,strlen(name)) % HASHSIZE);
}
diff --git a/gdb/buildsym.h b/gdb/buildsym.h
index 1604ef5..4bc6c7f 100644
--- a/gdb/buildsym.h
+++ b/gdb/buildsym.h
@@ -279,7 +279,7 @@ extern void record_line (struct subfile *subfile, int line, CORE_ADDR pc);
extern void start_symtab (char *name, char *dirname, CORE_ADDR start_addr);
-extern int hashname (char *name);
+extern int hashname (const char *name);
extern void free_pending_blocks (void);
diff --git a/gdb/c-lang.c b/gdb/c-lang.c
index 6e92fb9..9e571ea 100644
--- a/gdb/c-lang.c
+++ b/gdb/c-lang.c
@@ -87,7 +87,7 @@ classify_type (struct type *elttype, struct gdbarch *gdbarch,
that would do the wrong thing. */
while (elttype)
{
- char *name = TYPE_NAME (elttype);
+ const char *name = TYPE_NAME (elttype);
if (TYPE_CODE (elttype) == TYPE_CODE_CHAR || !name)
{
diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index db254dc..21887c6 100644
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -142,7 +142,7 @@ static void
cp_type_print_derivation_info (struct ui_file *stream,
struct type *type)
{
- char *name;
+ const char *name;
int i;
for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
@@ -165,8 +165,8 @@ cp_type_print_derivation_info (struct ui_file *stream,
/* Print the C++ method arguments ARGS to the file STREAM. */
static void
-cp_type_print_method_args (struct type *mtype, char *prefix,
- char *varstring, int staticp,
+cp_type_print_method_args (struct type *mtype, const char *prefix,
+ const char *varstring, int staticp,
struct ui_file *stream)
{
struct field *args = TYPE_FIELDS (mtype);
@@ -238,7 +238,7 @@ c_type_print_varspec_prefix (struct type *type,
int show, int passed_a_ptr,
int need_post_space)
{
- char *name;
+ const char *name;
if (type == 0)
return;
@@ -471,7 +471,7 @@ is_type_conversion_operator (struct type *type, int i, int j)
by their name is pretty terrible. But I don't think our present
data structure gives us any other way to tell. If you know of
some other way, feel free to rewrite this function. */
- char *name = TYPE_FN_FIELDLIST_NAME (type, i);
+ const char *name = TYPE_FN_FIELDLIST_NAME (type, i);
if (strncmp (name, "operator", 8) != 0)
return 0;
@@ -990,8 +990,8 @@ c_type_print_base (struct type *type, struct ui_file *stream,
{
struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
int j, len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
- char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
- char *name = type_name_no_tag (type);
+ const char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
+ const char *name = type_name_no_tag (type);
int is_constructor = name && strcmp (method_name,
name) == 0;
diff --git a/gdb/coffread.c b/gdb/coffread.c
index c727228..30bf3f7 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -1455,10 +1455,11 @@ patch_type (struct type *type, struct type *real_type)
if (TYPE_NAME (real_target))
{
+ /* The previous copy of TYPE_NAME is allocated by
+ process_coff_symbol. */
if (TYPE_NAME (target))
- xfree (TYPE_NAME (target));
- TYPE_NAME (target) = concat (TYPE_NAME (real_target),
- (char *) NULL);
+ xfree ((char*) TYPE_NAME (target));
+ TYPE_NAME (target) = xstrdup (TYPE_NAME (real_target));
}
}
@@ -1486,7 +1487,7 @@ patch_opaque_types (struct symtab *s)
&& TYPE_CODE (SYMBOL_TYPE (real_sym)) == TYPE_CODE_PTR
&& TYPE_LENGTH (TYPE_TARGET_TYPE (SYMBOL_TYPE (real_sym))) != 0)
{
- char *name = SYMBOL_LINKAGE_NAME (real_sym);
+ const char *name = SYMBOL_LINKAGE_NAME (real_sym);
int hash = hashname (name);
struct symbol *sym, *prev;
@@ -1675,7 +1676,7 @@ process_coff_symbol (struct coff_symbol *cs,
}
else
TYPE_NAME (SYMBOL_TYPE (sym)) =
- concat (SYMBOL_LINKAGE_NAME (sym), (char *) NULL);
+ xstrdup (SYMBOL_LINKAGE_NAME (sym));
}
/* Keep track of any type which points to empty structured
diff --git a/gdb/completer.c b/gdb/completer.c
index 48a4e46..5939d08 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -386,7 +386,7 @@ add_struct_fields (struct type *type, int *nextp, char **output,
{
int i;
int computed_type_name = 0;
- char *type_name = NULL;
+ const char *type_name = NULL;
CHECK_TYPEDEF (type);
for (i = 0; i < TYPE_NFIELDS (type); ++i)
@@ -416,7 +416,7 @@ add_struct_fields (struct type *type, int *nextp, char **output,
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; --i)
{
- char *name = TYPE_FN_FIELDLIST_NAME (type, i);
+ const char *name = TYPE_FN_FIELDLIST_NAME (type, i);
if (name && ! strncmp (name, fieldname, namelen))
{
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index 4902e50..0620aa7 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -1205,7 +1205,7 @@ make_symbol_overload_list_adl_namespace (struct type *type,
const char *func_name)
{
char *namespace;
- char *type_name;
+ const char *type_name;
int i, prefix_len;
while (TYPE_CODE (type) == TYPE_CODE_PTR
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
index 7df9adf..1697006 100644
--- a/gdb/cp-valprint.c
+++ b/gdb/cp-valprint.c
@@ -98,7 +98,7 @@ const char vtbl_ptr_name[] = "__vtbl_ptr_type";
int
cp_is_vtbl_ptr_type (struct type *type)
{
- char *typename = type_name_no_tag (type);
+ const char *typename = type_name_no_tag (type);
return (typename != NULL && !strcmp (typename, vtbl_ptr_name));
}
@@ -495,7 +495,7 @@ cp_print_value (struct type *type, struct type *real_type,
int boffset = 0;
int skip;
struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
- char *basename = TYPE_NAME (baseclass);
+ const char *basename = TYPE_NAME (baseclass);
const gdb_byte *base_valaddr = NULL;
const struct value *base_val = NULL;
volatile struct gdb_exception ex;
@@ -794,7 +794,7 @@ cp_print_class_member (const gdb_byte *valaddr, struct type *type,
if (domain != NULL)
{
- char *name;
+ const char *name;
fputs_filtered (prefix, stream);
name = type_name_no_tag (domain);
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index adf8315..1725112 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1210,7 +1210,7 @@ read_dbx_symtab (struct objfile *objfile)
struct partial_symtab *pst;
/* List of current psymtab's include files. */
- char **psymtab_include_list;
+ const char **psymtab_include_list;
int includes_allocated;
int includes_used;
@@ -1232,8 +1232,8 @@ read_dbx_symtab (struct objfile *objfile)
includes_allocated = 30;
includes_used = 0;
- psymtab_include_list = (char **) alloca (includes_allocated *
- sizeof (char *));
+ psymtab_include_list = (const char **) alloca (includes_allocated *
+ sizeof (const char *));
dependencies_allocated = 30;
dependencies_used = 0;
@@ -1635,12 +1635,12 @@ read_dbx_symtab (struct objfile *objfile)
psymtab_include_list[includes_used++] = namestring;
if (includes_used >= includes_allocated)
{
- char **orig = psymtab_include_list;
+ const char **orig = psymtab_include_list;
- psymtab_include_list = (char **)
- alloca ((includes_allocated *= 2) * sizeof (char *));
+ psymtab_include_list = (const char **)
+ alloca ((includes_allocated *= 2) * sizeof (const char *));
memcpy (psymtab_include_list, orig,
- includes_used * sizeof (char *));
+ includes_used * sizeof (const char *));
}
continue;
}
@@ -2226,7 +2226,8 @@ start_psymtab (struct objfile *objfile, char *filename, CORE_ADDR textlow,
FIXME: List variables and peculiarities of same. */
struct partial_symtab *
-end_psymtab (struct partial_symtab *pst, char **include_list, int num_includes,
+end_psymtab (struct partial_symtab *pst,
+ const char **include_list, int num_includes,
int capping_symbol_offset, CORE_ADDR capping_text,
struct partial_symtab **dependency_list, int number_dependencies,
int textlow_not_set)
diff --git a/gdb/defs.h b/gdb/defs.h
index 83a716a..a97487a 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -582,7 +582,7 @@ extern CORE_ADDR string_to_core_addr (const char *my_string);
extern char *hex_string (LONGEST);
extern char *hex_string_custom (LONGEST, int);
-extern void fprintf_symbol_filtered (struct ui_file *, char *,
+extern void fprintf_symbol_filtered (struct ui_file *, const char *,
enum language, int);
extern void perror_with_name (const char *) ATTRIBUTE_NORETURN;
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index fc0d2e2..0576def 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -1029,7 +1029,7 @@ static struct type *read_type_die (struct die_info *, struct dwarf2_cu *);
static struct type *read_type_die_1 (struct die_info *, struct dwarf2_cu *);
-static char *determine_prefix (struct die_info *die, struct dwarf2_cu *);
+static const char *determine_prefix (struct die_info *die, struct dwarf2_cu *);
static char *typename_concat (struct obstack *obs, const char *prefix,
const char *suffix, int physname,
@@ -5013,7 +5013,7 @@ dwarf2_compute_name (char *name, struct die_info *die, struct dwarf2_cu *cu,
if (die_needs_namespace (die, cu))
{
long length;
- char *prefix;
+ const char *prefix;
struct ui_file *buf;
prefix = determine_prefix (die, cu);
@@ -7729,7 +7729,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
i >= TYPE_N_BASECLASSES (t);
--i)
{
- char *fieldname = TYPE_FIELD_NAME (t, i);
+ const char *fieldname = TYPE_FIELD_NAME (t, i);
if (is_vtable_name (fieldname, cu))
{
@@ -12479,7 +12479,7 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu)
then determine_prefix on foo's die will return "N::C". */
-static char *
+static const char *
determine_prefix (struct die_info *die, struct dwarf2_cu *cu)
{
struct die_info *parent, *spec_die;
diff --git a/gdb/eval.c b/gdb/eval.c
index 0244f7a..9913a72 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -335,7 +335,8 @@ evaluate_struct_tuple (struct value *struct_val,
for (fieldno = 0; fieldno < TYPE_NFIELDS (struct_type);
fieldno++)
{
- char *field_name = TYPE_FIELD_NAME (struct_type, fieldno);
+ const char *field_name =
+ TYPE_FIELD_NAME (struct_type, fieldno);
if (field_name != NULL && strcmp (field_name, label) == 0)
{
@@ -348,7 +349,8 @@ evaluate_struct_tuple (struct value *struct_val,
for (fieldno = 0; fieldno < TYPE_NFIELDS (struct_type);
fieldno++)
{
- char *field_name = TYPE_FIELD_NAME (struct_type, fieldno);
+ const char *field_name =
+ TYPE_FIELD_NAME (struct_type, fieldno);
field_type = TYPE_FIELD_TYPE (struct_type, fieldno);
if ((field_name == 0 || *field_name == '\0')
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index 5f15402..7f9afb6 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -572,7 +572,7 @@ find_first_common_named (char *name)
that belongs to function funcname. */
SAVED_F77_COMMON_PTR
-find_common_for_function (char *name, char *funcname)
+find_common_for_function (const char *name, const char *funcname)
{
SAVED_F77_COMMON_PTR tmp;
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index 3a46ebf..4e5563d 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -75,7 +75,8 @@ extern SAVED_F77_COMMON_PTR head_common_list; /* Ptr to 1st saved COMMON */
extern SAVED_F77_COMMON_PTR tail_common_list; /* Ptr to last saved COMMON */
extern SAVED_F77_COMMON_PTR current_common; /* Ptr to current COMMON */
-extern SAVED_F77_COMMON_PTR find_common_for_function (char *, char *);
+extern SAVED_F77_COMMON_PTR find_common_for_function (const char *,
+ const char *);
#define UNINITIALIZED_SECNUM -1
#define COMMON_NEEDS_PATCHING(blk) ((blk)->secnum == UNINITIALIZED_SECNUM)
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 87b2ed1..17f747f 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -41,7 +41,7 @@ static int there_is_a_visible_common_named (char *);
extern void _initialize_f_valprint (void);
static void info_common_command (char *, int);
-static void list_all_visible_commons (char *);
+static void list_all_visible_commons (const char *);
static void f77_create_arrayprint_offset_tbl (struct type *,
struct ui_file *);
static void f77_get_dynamic_length_of_aggregate (struct type *);
@@ -518,7 +518,7 @@ f_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
}
static void
-list_all_visible_commons (char *funname)
+list_all_visible_commons (const char *funname)
{
SAVED_F77_COMMON_PTR tmp;
@@ -545,7 +545,7 @@ info_common_command (char *comname, int from_tty)
SAVED_F77_COMMON_PTR the_common;
COMMON_ENTRY_PTR entry;
struct frame_info *fi;
- char *funname = 0;
+ const char *funname = 0;
struct symbol *func;
/* We have been told to display the contents of F77 COMMON
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index 64acceb..c079932 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -3646,8 +3646,8 @@ gdbarch_static_transform_name_p (struct gdbarch *gdbarch)
return gdbarch->static_transform_name != NULL;
}
-char *
-gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name)
+const char *
+gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->static_transform_name != NULL);
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 12fe2f0..84e6ff8 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -909,8 +909,8 @@ extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_
extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch);
-typedef char * (gdbarch_static_transform_name_ftype) (char *name);
-extern char * gdbarch_static_transform_name (struct gdbarch *gdbarch, char *name);
+typedef const char * (gdbarch_static_transform_name_ftype) (const char *name);
+extern const char * gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name);
extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_static_transform_name_ftype *static_transform_name);
/* Set if the address in N_SO or N_FUN stabs may be zero. */
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index ee15f29..5831172 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -758,7 +758,7 @@ F:void:overlay_update:struct obj_section *osect:osect
M:const struct target_desc *:core_read_description:struct target_ops *target, bfd *abfd:target, abfd
# Handle special encoding of static variables in stabs debug info.
-F:char *:static_transform_name:char *name:name
+F:const char *:static_transform_name:const char *name:name
# Set if the address in N_SO or N_FUN stabs may be zero.
v:int:sofun_address_maybe_missing:::0:0::0
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index b09c1ec..b6e8b4c 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1092,7 +1092,7 @@ smash_to_method_type (struct type *type, struct type *domain,
/* Return a typename for a struct/union/enum type without "struct ",
"union ", or "enum ". If the type has a NULL name, return NULL. */
-char *
+const char *
type_name_no_tag (const struct type *type)
{
if (TYPE_TAG_NAME (type) != NULL)
@@ -1164,7 +1164,7 @@ lookup_typename (const struct language_defn *language,
struct type *
lookup_unsigned_typename (const struct language_defn *language,
- struct gdbarch *gdbarch, char *name)
+ struct gdbarch *gdbarch, const char *name)
{
char *uns = alloca (strlen (name) + 10);
@@ -1175,7 +1175,7 @@ lookup_unsigned_typename (const struct language_defn *language,
struct type *
lookup_signed_typename (const struct language_defn *language,
- struct gdbarch *gdbarch, char *name)
+ struct gdbarch *gdbarch, const char *name)
{
struct type *t;
char *uns = alloca (strlen (name) + 8);
@@ -1338,7 +1338,7 @@ lookup_struct_elt_type (struct type *type, char *name, int noerr)
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name && (strcmp_iw (t_field_name, name) == 0))
{
@@ -1480,7 +1480,7 @@ check_typedef (struct type *type)
{
if (!TYPE_TARGET_TYPE (type))
{
- char *name;
+ const char *name;
struct symbol *sym;
/* It is dangerous to call lookup_symbol if we are currently
@@ -1543,7 +1543,7 @@ check_typedef (struct type *type)
&& opaque_type_resolution
&& !currently_reading_symtab)
{
- char *name = type_name_no_tag (type);
+ const char *name = type_name_no_tag (type);
struct type *newtype;
if (name == NULL)
@@ -1577,7 +1577,7 @@ check_typedef (struct type *type)
types. */
else if (TYPE_STUB (type) && !currently_reading_symtab)
{
- char *name = type_name_no_tag (type);
+ const char *name = type_name_no_tag (type);
/* FIXME: shouldn't we separately check the TYPE_NAME and the
TYPE_TAG_NAME, and look in STRUCT_DOMAIN and/or VAR_DOMAIN
as appropriate? (this code was written before TYPE_NAME and
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 2070f00..cddd2d0 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -436,9 +436,11 @@ struct main_type
/* Name of this type, or NULL if none.
This is used for printing only, except by poorly designed C++ code.
- For looking up a name, look for a symbol in the VAR_DOMAIN. */
+ For looking up a name, look for a symbol in the VAR_DOMAIN.
+ This is generally allocated in the objfile's obstack.
+ However coffread.c uses malloc. */
- char *name;
+ const char *name;
/* Tag name for this type, or NULL if none. This means that the
name of the type consists of a keyword followed by the tag name.
@@ -451,7 +453,7 @@ struct main_type
One more legitimate use is that if TYPE_FLAG_STUB is set, this is
the name to use to look for definitions in other files. */
- char *tag_name;
+ const char *tag_name;
/* Every type is now associated with a particular objfile, and the
type is allocated on the objfile_obstack for that objfile. One problem
@@ -556,7 +558,7 @@ struct main_type
NULL for range bounds, array domains, and member function
arguments. */
- char *name;
+ const char *name;
} *fields;
/* Union member used for range types. */
@@ -761,9 +763,11 @@ struct cplus_struct_type
struct fn_fieldlist
{
- /* The overloaded name. */
+ /* The overloaded name.
+ This is generally allocated in the objfile's obstack.
+ However stabsread.c sometimes uses malloc. */
- char *name;
+ const char *name;
/* The number of methods with this name. */
@@ -1461,7 +1465,7 @@ extern void smash_to_methodptr_type (struct type *, struct type *);
extern struct type *allocate_stub_method (struct type *);
-extern char *type_name_no_tag (const struct type *);
+extern const char *type_name_no_tag (const struct type *);
extern const char *type_name_no_tag_or_error (struct type *type);
@@ -1489,10 +1493,10 @@ extern struct type *lookup_string_range_type (struct type *, int, int);
extern struct type *create_set_type (struct type *, struct type *);
extern struct type *lookup_unsigned_typename (const struct language_defn *,
- struct gdbarch *,char *);
+ struct gdbarch *, const char *);
extern struct type *lookup_signed_typename (const struct language_defn *,
- struct gdbarch *,char *);
+ struct gdbarch *, const char *);
extern struct type *check_typedef (struct type *);
diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c
index de6f80a..e635e8f 100644
--- a/gdb/gnu-v2-abi.c
+++ b/gdb/gnu-v2-abi.c
@@ -194,6 +194,7 @@ gnuv2_value_rtti_type (struct value *v, int *full, int *top, int *using_enc)
CORE_ADDR vtbl;
struct minimal_symbol *minsym;
char *demangled_name, *p;
+ const char *linkage_name;
struct type *btype;
struct type *known_type_vptr_basetype;
int known_type_vptr_fieldno;
@@ -246,12 +247,12 @@ gnuv2_value_rtti_type (struct value *v, int *full, int *top, int *using_enc)
/* Try to find a symbol that is the vtable. */
minsym=lookup_minimal_symbol_by_pc(vtbl);
if (minsym==NULL
- || (demangled_name=SYMBOL_LINKAGE_NAME (minsym))==NULL
- || !is_vtable_name (demangled_name))
+ || (linkage_name=SYMBOL_LINKAGE_NAME (minsym))==NULL
+ || !is_vtable_name (linkage_name))
return NULL;
/* If we just skip the prefix, we get screwed by namespaces. */
- demangled_name=cplus_demangle(demangled_name,DMGL_PARAMS|DMGL_ANSI);
+ demangled_name=cplus_demangle(linkage_name,DMGL_PARAMS|DMGL_ANSI);
p = strchr (demangled_name, ' ');
if (p)
*p = '\0';
@@ -297,8 +298,8 @@ static int
vb_match (struct type *type, int index, struct type *basetype)
{
struct type *fieldtype;
- char *name = TYPE_FIELD_NAME (type, index);
- char *field_class_name = NULL;
+ const char *name = TYPE_FIELD_NAME (type, index);
+ const char *field_class_name = NULL;
if (*name != '_')
return 0;
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
index a461bb0..f015af6 100644
--- a/gdb/gnu-v3-abi.c
+++ b/gdb/gnu-v3-abi.c
@@ -735,7 +735,7 @@ gnuv3_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc)
struct gdbarch *gdbarch = get_frame_arch (frame);
struct minimal_symbol *thunk_sym, *fn_sym;
struct obj_section *section;
- char *thunk_name, *fn_name;
+ const char *thunk_name, *fn_name;
real_stop_pc = gdbarch_skip_trampoline_code (gdbarch, frame, stop_pc);
if (real_stop_pc == 0)
@@ -804,7 +804,7 @@ gnuv3_pass_by_reference (struct type *type)
fieldelem++)
{
struct fn_field *fn = TYPE_FN_FIELDLIST1 (type, fieldnum);
- char *name = TYPE_FN_FIELDLIST_NAME (type, fieldnum);
+ const char *name = TYPE_FN_FIELDLIST_NAME (type, fieldnum);
struct type *fieldtype = TYPE_FN_FIELD_TYPE (fn, fieldelem);
/* If this function is marked as artificial, it is compiler-generated,
diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c
index e0964de..5273f52 100644
--- a/gdb/i386-sol2-tdep.c
+++ b/gdb/i386-sol2-tdep.c
@@ -79,8 +79,8 @@ i386_sol2_mcontext_addr (struct frame_info *this_frame)
/* SunPRO encodes the static variables. This is not related to C++
mangling, it is done for C too. */
-static char *
-i386_sol2_static_transform_name (char *name)
+static const char *
+i386_sol2_static_transform_name (const char *name)
{
char *p;
if (name[0] == '.')
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index cde14e5..56e375e 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -3273,7 +3273,7 @@ i386_pe_skip_trampoline_code (struct frame_info *frame,
read_memory_unsigned_integer (pc + 2, 4, byte_order);
struct minimal_symbol *indsym =
indirect ? lookup_minimal_symbol_by_pc (indirect) : 0;
- char *symname = indsym ? SYMBOL_LINKAGE_NAME (indsym) : 0;
+ const char *symname = indsym ? SYMBOL_LINKAGE_NAME (indsym) : 0;
if (symname)
{
diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c
index e6fcaee..dc50b40 100644
--- a/gdb/jv-lang.c
+++ b/gdb/jv-lang.c
@@ -45,8 +45,8 @@
extern void _initialize_java_language (void);
-static int java_demangled_signature_length (char *);
-static void java_demangled_signature_copy (char *, char *);
+static int java_demangled_signature_length (const char *);
+static void java_demangled_signature_copy (char *, const char *);
static struct symtab *get_java_class_symtab (struct gdbarch *gdbarch);
static char *get_java_utf8_name (struct obstack *obstack, struct value *name);
@@ -341,8 +341,8 @@ java_link_class_type (struct gdbarch *gdbarch,
struct type *type, struct value *clas)
{
struct value *temp;
- char *unqualified_name;
- char *name = TYPE_TAG_NAME (type);
+ const char *unqualified_name;
+ const char *name = TYPE_TAG_NAME (type);
int ninterfaces, nfields, nmethods;
int type_is_object = 0;
struct fn_field *fn_fields;
@@ -511,7 +511,7 @@ java_link_class_type (struct gdbarch *gdbarch,
methods = NULL;
for (i = 0; i < nmethods; i++)
{
- char *mname;
+ const char *mname;
int k;
if (methods == NULL)
@@ -617,7 +617,7 @@ is_object_type (struct type *type)
if (TYPE_CODE (type) == TYPE_CODE_PTR)
{
struct type *ttype = check_typedef (TYPE_TARGET_TYPE (type));
- char *name;
+ const char *name;
if (TYPE_CODE (ttype) != TYPE_CODE_STRUCT)
return 0;
while (TYPE_N_BASECLASSES (ttype) > 0)
@@ -667,7 +667,7 @@ java_primitive_type (struct gdbarch *gdbarch, int signature)
struct type *
java_primitive_type_from_name (struct gdbarch *gdbarch,
- char *name, int namelen)
+ const char *name, int namelen)
{
const struct builtin_java_type *builtin = builtin_java_type (gdbarch);
@@ -742,7 +742,7 @@ java_primitive_type_name (int signature)
signature string SIGNATURE. */
static int
-java_demangled_signature_length (char *signature)
+java_demangled_signature_length (const char *signature)
{
int array = 0;
@@ -762,7 +762,7 @@ java_demangled_signature_length (char *signature)
RESULT. */
static void
-java_demangled_signature_copy (char *result, char *signature)
+java_demangled_signature_copy (char *result, const char *signature)
{
int array = 0;
char *ptr;
@@ -805,7 +805,7 @@ java_demangled_signature_copy (char *result, char *signature)
as a freshly allocated copy. */
char *
-java_demangle_type_signature (char *signature)
+java_demangle_type_signature (const char *signature)
{
int length = java_demangled_signature_length (signature);
char *result = xmalloc (length + 1);
@@ -905,7 +905,7 @@ evaluate_subexp_java (struct type *expect_type, struct expression *exp,
{
int pc = *pos;
int i;
- char *name;
+ const char *name;
enum exp_opcode op = exp->elts[*pos].opcode;
struct value *arg1;
struct value *arg2;
diff --git a/gdb/jv-lang.h b/gdb/jv-lang.h
index 4344706..d061096 100644
--- a/gdb/jv-lang.h
+++ b/gdb/jv-lang.h
@@ -57,7 +57,7 @@ extern struct type *type_from_class (struct gdbarch *, struct value *);
extern struct type *java_primitive_type (struct gdbarch *, int signature);
extern struct type *java_primitive_type_from_name (struct gdbarch *,
- char *, int);
+ const char *, int);
extern struct type *java_array_type (struct type *, int);
@@ -72,6 +72,6 @@ extern int is_object_type (struct type *);
extern void java_print_type (struct type *, const char *,
struct ui_file *, int, int);
-extern char *java_demangle_type_signature (char *);
+extern char *java_demangle_type_signature (const char *);
#endif
diff --git a/gdb/jv-typeprint.c b/gdb/jv-typeprint.c
index c48e736..cc3bb15 100644
--- a/gdb/jv-typeprint.c
+++ b/gdb/jv-typeprint.c
@@ -39,7 +39,7 @@ static void java_type_print_base (struct type * type,
static void
java_type_print_derivation_info (struct ui_file *stream, struct type *type)
{
- char *name;
+ const char *name;
int i;
int n_bases;
int prev;
@@ -208,8 +208,8 @@ java_type_print_base (struct type *type, struct ui_file *stream, int show,
{
struct fn_field *f;
int j;
- char *method_name;
- char *name;
+ const char *method_name;
+ const char *name;
int is_constructor;
int n_overloads;
diff --git a/gdb/jv-valprint.c b/gdb/jv-valprint.c
index 2aea0e1..d430ba0 100644
--- a/gdb/jv-valprint.c
+++ b/gdb/jv-valprint.c
@@ -42,7 +42,7 @@ java_value_print (struct value *val, struct ui_file *stream,
struct type *type;
CORE_ADDR address;
int i;
- char *name;
+ const char *name;
struct value_print_options opts;
type = value_type (val);
@@ -283,7 +283,7 @@ java_print_value_fields (struct type *type, const gdb_byte *valaddr,
{
int boffset;
struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
- char *basename = TYPE_NAME (baseclass);
+ const char *basename = TYPE_NAME (baseclass);
const gdb_byte *base_valaddr;
if (BASETYPE_VIA_VIRTUAL (type, i))
@@ -325,7 +325,7 @@ java_print_value_fields (struct type *type, const gdb_byte *valaddr,
/* If requested, skip printing of static fields. */
if (field_is_static (&TYPE_FIELD (type, i)))
{
- char *name = TYPE_FIELD_NAME (type, i);
+ const char *name = TYPE_FIELD_NAME (type, i);
if (!options->static_field_print)
continue;
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 4e42750..da88d17 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -435,8 +435,7 @@ find_methods (struct type *t, const char *name,
{
int i1 = 0;
int ibase;
- char *class_name = type_name_no_tag (t);
- char *canon;
+ const char *class_name = type_name_no_tag (t);
/* Ignore this class if it doesn't have a name. This is ugly, but
unless we figure out how to get the physname without the name of
@@ -456,7 +455,7 @@ find_methods (struct type *t, const char *name,
method_counter >= 0;
--method_counter)
{
- char *method_name = TYPE_FN_FIELDLIST_NAME (t, method_counter);
+ const char *method_name = TYPE_FN_FIELDLIST_NAME (t, method_counter);
char dem_opname[64];
if (strncmp (method_name, "__", 2) == 0 ||
diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c
index 0a006ca..1211624 100644
--- a/gdb/m32c-tdep.c
+++ b/gdb/m32c-tdep.c
@@ -2452,7 +2452,7 @@ m32c_m16c_address_to_pointer (struct gdbarch *gdbarch,
if (target_code == TYPE_CODE_FUNC || target_code == TYPE_CODE_METHOD)
{
- char *func_name;
+ const char *func_name;
char *tramp_name;
struct minimal_symbol *tramp_msym;
@@ -2539,7 +2539,7 @@ m32c_m16c_pointer_to_address (struct gdbarch *gdbarch,
if (ptr_msym)
{
- char *ptr_msym_name = SYMBOL_LINKAGE_NAME (ptr_msym);
+ const char *ptr_msym_name = SYMBOL_LINKAGE_NAME (ptr_msym);
int len = strlen (ptr_msym_name);
if (len > 4
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index e6d3b8c..299e94c 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -2359,7 +2359,7 @@ parse_partial_symbols (struct objfile *objfile)
int past_first_source_file = 0;
/* List of current psymtab's include files. */
- char **psymtab_include_list;
+ const char **psymtab_include_list;
int includes_allocated;
int includes_used;
EXTR *extern_tab;
@@ -2389,8 +2389,8 @@ parse_partial_symbols (struct objfile *objfile)
includes_allocated = 30;
includes_used = 0;
- psymtab_include_list = (char **) alloca (includes_allocated *
- sizeof (char *));
+ psymtab_include_list = (const char **) alloca (includes_allocated *
+ sizeof (const char *));
next_symbol_text_func = mdebug_next_symbol_text;
dependencies_allocated = 30;
@@ -2754,7 +2754,7 @@ parse_partial_symbols (struct objfile *objfile)
for (cur_sdx = 2; cur_sdx < fh->csym; cur_sdx++)
{
int type_code;
- char *namestring;
+ const char *namestring;
(*swap_sym_in) (cur_bfd,
(((char *) debug_info->external_sym)
@@ -3090,13 +3090,13 @@ parse_partial_symbols (struct objfile *objfile)
psymtab_include_list[includes_used++] = namestring;
if (includes_used >= includes_allocated)
{
- char **orig = psymtab_include_list;
+ const char **orig = psymtab_include_list;
- psymtab_include_list = (char **)
+ psymtab_include_list = (const char **)
alloca ((includes_allocated *= 2) *
- sizeof (char *));
+ sizeof (const char *));
memcpy (psymtab_include_list, orig,
- includes_used * sizeof (char *));
+ includes_used * sizeof (const char *));
}
continue;
}
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 2e7777b..d762b2d 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -988,8 +988,8 @@ compare_minimal_symbols (const void *fn1p, const void *fn2p)
else
/* addrs are equal: sort by name */
{
- char *name1 = SYMBOL_LINKAGE_NAME (fn1);
- char *name2 = SYMBOL_LINKAGE_NAME (fn2);
+ const char *name1 = SYMBOL_LINKAGE_NAME (fn1);
+ const char *name2 = SYMBOL_LINKAGE_NAME (fn2);
if (name1 && name2) /* both have names */
return strcmp (name1, name2);
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index 94951fe..c45f406 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -636,14 +636,14 @@ end_msglist(void)
}
/*
- * Function: specialcmp (char *a, char *b)
+ * Function: specialcmp (const char *a, const char *b)
*
* Special strcmp: treats ']' and ' ' as end-of-string.
* Used for qsorting lists of objc methods (either by class or selector).
*/
static int
-specialcmp (char *a, char *b)
+specialcmp (const char *a, const char *b)
{
while (*a && *a != ' ' && *a != ']' && *b && *b != ' ' && *b != ']')
{
@@ -668,7 +668,7 @@ specialcmp (char *a, char *b)
static int
compare_selectors (const void *a, const void *b)
{
- char *aname, *bname;
+ const char *aname, *bname;
aname = SYMBOL_PRINT_NAME (*(struct symbol **) a);
bname = SYMBOL_PRINT_NAME (*(struct symbol **) b);
@@ -697,7 +697,7 @@ selectors_info (char *regexp, int from_tty)
{
struct objfile *objfile;
struct minimal_symbol *msymbol;
- char *name;
+ const char *name;
char *val;
int matches = 0;
int maxlen = 0;
@@ -762,8 +762,8 @@ selectors_info (char *regexp, int from_tty)
}
if (regexp == NULL || re_exec(++name) != 0)
{
- char *mystart = name;
- char *myend = (char *) strchr (mystart, ']');
+ const char *mystart = name;
+ const char *myend = strchr (mystart, ']');
if (myend && (myend - mystart > maxlen))
maxlen = myend - mystart; /* Get longest selector. */
@@ -834,7 +834,7 @@ selectors_info (char *regexp, int from_tty)
static int
compare_classes (const void *a, const void *b)
{
- char *aname, *bname;
+ const char *aname, *bname;
aname = SYMBOL_PRINT_NAME (*(struct symbol **) a);
bname = SYMBOL_PRINT_NAME (*(struct symbol **) b);
@@ -859,7 +859,7 @@ classes_info (char *regexp, int from_tty)
{
struct objfile *objfile;
struct minimal_symbol *msymbol;
- char *name;
+ const char *name;
char *val;
int matches = 0;
int maxlen = 0;
@@ -901,8 +901,8 @@ classes_info (char *regexp, int from_tty)
if (regexp == NULL || re_exec(name+2) != 0)
{
/* Compute length of classname part. */
- char *mystart = name + 2;
- char *myend = (char *) strchr(mystart, ' ');
+ const char *mystart = name + 2;
+ const char *myend = strchr (mystart, ' ');
if (myend && (myend - mystart > maxlen))
maxlen = myend - mystart;
@@ -1119,7 +1119,7 @@ find_methods (char type, const char *class, const char *category,
{
struct objfile *objfile = NULL;
- char *symname = NULL;
+ const char *symname = NULL;
char ntype = '\0';
char *nclass = NULL;
diff --git a/gdb/p-exp.y b/gdb/p-exp.y
index 4be3e6e..3b7984e 100644
--- a/gdb/p-exp.y
+++ b/gdb/p-exp.y
@@ -338,7 +338,7 @@ exp : field_exp COMPLETE
exp : exp '['
/* We need to save the current_type value. */
- { char *arrayname;
+ { const char *arrayname;
int arrayfieldindex;
arrayfieldindex = is_pascal_string_type (
current_type, NULL, NULL,
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
index b634b99..6fe19c4 100644
--- a/gdb/p-lang.c
+++ b/gdb/p-lang.c
@@ -99,7 +99,7 @@ int
is_pascal_string_type (struct type *type,int *length_pos,
int *length_size, int *string_pos,
struct type **char_type,
- char **arrayname)
+ const char **arrayname)
{
if (type != NULL && TYPE_CODE (type) == TYPE_CODE_STRUCT)
{
diff --git a/gdb/p-lang.h b/gdb/p-lang.h
index 308b7b5..180c544 100644
--- a/gdb/p-lang.h
+++ b/gdb/p-lang.h
@@ -50,7 +50,7 @@ extern void pascal_type_print_method_args (const char *, const char *,
extern int
is_pascal_string_type (struct type *, int *, int *, int *,
- struct type **, char **);
+ struct type **, const char **);
extern void pascal_printchar (int, struct type *, struct ui_file *);
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index 7bcacdf..ab82d90 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -131,7 +131,7 @@ pascal_print_typedef (struct type *type, struct symbol *new_symbol,
static void
pascal_type_print_derivation_info (struct ui_file *stream, struct type *type)
{
- char *name;
+ const char *name;
int i;
for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
@@ -630,7 +630,7 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
{
struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
int j, len2 = TYPE_FN_FIELDLIST_LENGTH (type, i);
- char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
+ const char *method_name = TYPE_FN_FIELDLIST_NAME (type, i);
/* this is GNU C++ specific
how can we know constructor/destructor?
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
index c5bef8a..39eff10 100644
--- a/gdb/p-valprint.c
+++ b/gdb/p-valprint.c
@@ -649,7 +649,7 @@ const char pascal_vtbl_ptr_name[] =
int
pascal_object_is_vtbl_ptr_type (struct type *type)
{
- char *typename = type_name_no_tag (type);
+ const char *typename = type_name_no_tag (type);
return (typename != NULL
&& strcmp (typename, pascal_vtbl_ptr_name) == 0);
@@ -912,7 +912,7 @@ pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
{
int boffset = 0;
struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
- char *basename = type_name_no_tag (baseclass);
+ const char *basename = type_name_no_tag (baseclass);
const gdb_byte *base_valaddr = NULL;
int thisoffset;
volatile struct gdb_exception ex;
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index bee8a85..d441dfe 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -638,7 +638,7 @@ build_address_symbolic (struct gdbarch *gdbarch,
struct symbol *symbol;
CORE_ADDR name_location = 0;
struct obj_section *section = NULL;
- char *name_temp = "";
+ const char *name_temp = "";
/* Let's say it is mapped (not unmapped). */
*unmapped = 0;
diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c
index a8ce598..12cedc3 100644
--- a/gdb/python/py-frame.c
+++ b/gdb/python/py-frame.c
@@ -124,7 +124,7 @@ static PyObject *
frapy_name (PyObject *self, PyObject *args)
{
struct frame_info *frame;
- char *name;
+ const char *name;
enum language lang;
PyObject *result;
volatile struct gdb_exception except;
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index dadb037..70ed5d6 100644
--- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c
@@ -1271,7 +1271,7 @@ typy_getitem (PyObject *self, PyObject *key)
for (i = 0; i < TYPE_NFIELDS (type); i++)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name && (strcmp_iw (t_field_name, field) == 0))
{
@@ -1332,7 +1332,7 @@ typy_has_key (PyObject *self, PyObject *args)
for (i = 0; i < TYPE_NFIELDS (type); i++)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name && (strcmp_iw (t_field_name, field) == 0))
Py_RETURN_TRUE;
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index f29822e..ce4943c 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -961,7 +961,7 @@ frv_fdpic_find_global_pointer (CORE_ADDR addr)
/* Forward declarations for frv_fdpic_find_canonical_descriptor(). */
static CORE_ADDR find_canonical_descriptor_in_load_object
- (CORE_ADDR, CORE_ADDR, char *, bfd *, struct lm_info *);
+ (CORE_ADDR, CORE_ADDR, const char *, bfd *, struct lm_info *);
/* Given a function entry point, attempt to find the canonical descriptor
associated with that entry point. Return 0 if no canonical descriptor
@@ -970,7 +970,7 @@ static CORE_ADDR find_canonical_descriptor_in_load_object
CORE_ADDR
frv_fdpic_find_canonical_descriptor (CORE_ADDR entry_point)
{
- char *name;
+ const char *name;
CORE_ADDR addr;
CORE_ADDR got_value;
struct int_elf32_fdpic_loadmap *ldm = 0;
@@ -1019,7 +1019,7 @@ frv_fdpic_find_canonical_descriptor (CORE_ADDR entry_point)
static CORE_ADDR
find_canonical_descriptor_in_load_object
- (CORE_ADDR entry_point, CORE_ADDR got_value, char *name, bfd *abfd,
+ (CORE_ADDR entry_point, CORE_ADDR got_value, const char *name, bfd *abfd,
struct lm_info *lm)
{
enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch);
diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c
index aa3543f..d2fc4d6 100644
--- a/gdb/sparc-sol2-tdep.c
+++ b/gdb/sparc-sol2-tdep.c
@@ -173,8 +173,8 @@ static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind =
/* Unglobalize NAME. */
-char *
-sparc_sol2_static_transform_name (char *name)
+const const char *
+sparc_sol2_static_transform_name (const char *name)
{
/* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop,
SunPRO) convert file static variables into global values, a
diff --git a/gdb/sparc-tdep.h b/gdb/sparc-tdep.h
index 67c2a3e8f..db94994 100644
--- a/gdb/sparc-tdep.h
+++ b/gdb/sparc-tdep.h
@@ -217,7 +217,7 @@ extern const struct sparc_gregset sparc32_sol2_gregset;
extern int sparc_sol2_pc_in_sigtramp (CORE_ADDR pc, const char *name);
-extern char *sparc_sol2_static_transform_name (char *name);
+extern const char *sparc_sol2_static_transform_name (const char *name);
extern void sparc32_sol2_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch);
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index e3811dd..afcfe06 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -1173,7 +1173,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
NULL, objfile);
if (msym != NULL)
{
- char *new_name = gdbarch_static_transform_name
+ const char *new_name = gdbarch_static_transform_name
(gdbarch, SYMBOL_LINKAGE_NAME (sym));
SYMBOL_SET_LINKAGE_NAME (sym, new_name);
@@ -1367,7 +1367,7 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
NULL, objfile);
if (msym != NULL)
{
- char *new_name = gdbarch_static_transform_name
+ const char *new_name = gdbarch_static_transform_name
(gdbarch, SYMBOL_LINKAGE_NAME (sym));
SYMBOL_SET_LINKAGE_NAME (sym, new_name);
@@ -2232,10 +2232,11 @@ rs6000_builtin_type (int typenum, struct objfile *objfile)
/* This page contains subroutines of read_type. */
-/* Replace *OLD_NAME with the method name portion of PHYSNAME. */
+/* Wrapper around method_name_from_physname to flag a complaint
+ if there is an error. */
-static void
-update_method_name_from_physname (char **old_name, const char *physname)
+static char *
+stabs_method_name_from_physname (const char *physname)
{
char *method_name;
@@ -2245,16 +2246,10 @@ update_method_name_from_physname (char **old_name, const char *physname)
{
complaint (&symfile_complaints,
_("Method has bad physname %s\n"), physname);
- return;
+ return NULL;
}
- if (strcmp (*old_name, method_name) != 0)
- {
- xfree (*old_name);
- *old_name = method_name;
- }
- else
- xfree (method_name);
+ return method_name;
}
/* Read member function stabs info for C++ classes. The form of each member
@@ -2687,14 +2682,24 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
- in -gstabs instead of -gstabs+
- or for static methods, which are output as a function type
instead of a method type. */
+ char *new_method_name =
+ stabs_method_name_from_physname (sublist->fn_field.physname);
- update_method_name_from_physname (&new_fnlist->fn_fieldlist.name,
- sublist->fn_field.physname);
+ if (new_method_name != NULL
+ && strcmp (new_method_name,
+ new_fnlist->fn_fieldlist.name) != 0)
+ {
+ new_fnlist->fn_fieldlist.name = new_method_name;
+ xfree (main_fn_name);
+ }
+ else
+ xfree (new_method_name);
}
else if (has_destructor && new_fnlist->fn_fieldlist.name[0] != '~')
{
new_fnlist->fn_fieldlist.name =
- concat ("~", main_fn_name, (char *)NULL);
+ obconcat (&objfile->objfile_obstack,
+ "~", main_fn_name, (char *)NULL);
xfree (main_fn_name);
}
else if (!has_stub)
@@ -2711,6 +2716,7 @@ read_member_functions (struct field_info *fip, char **pp, struct type *type,
new_fnlist->fn_fieldlist.name
= obsavestring (dem_opname, strlen (dem_opname),
&objfile->objfile_obstack);
+ xfree (main_fn_name);
}
new_fnlist->fn_fieldlist.fn_fields = (struct fn_field *)
@@ -2753,7 +2759,7 @@ read_cpp_abbrev (struct field_info *fip, char **pp, struct type *type,
struct objfile *objfile)
{
char *p;
- char *name;
+ const char *name;
char cpp_abbrev;
struct type *context;
@@ -3266,7 +3272,7 @@ read_tilde_fields (struct field_info *fip, char **pp, struct type *type,
i >= TYPE_N_BASECLASSES (t);
--i)
{
- char *name = TYPE_FIELD_NAME (t, i);
+ const char *name = TYPE_FIELD_NAME (t, i);
if (!strncmp (name, vptr_name, sizeof (vptr_name) - 2)
&& is_cplus_marker (name[sizeof (vptr_name) - 2]))
@@ -3406,8 +3412,8 @@ attach_fields_to_type (struct field_info *fip, struct type *type,
static void
complain_about_struct_wipeout (struct type *type)
{
- char *name = "";
- char *kind = "";
+ const char *name = "";
+ const char *kind = "";
if (TYPE_TAG_NAME (type))
{
@@ -4545,7 +4551,7 @@ cleanup_undefined_types_1 (void)
struct pending *ppt;
int i;
/* Name of the type, without "struct" or "union". */
- char *typename = TYPE_TAG_NAME (*type);
+ const char *typename = TYPE_TAG_NAME (*type);
if (typename == NULL)
{
diff --git a/gdb/stabsread.h b/gdb/stabsread.h
index 071552e..a48f4b1 100644
--- a/gdb/stabsread.h
+++ b/gdb/stabsread.h
@@ -162,7 +162,7 @@ struct stab_section_list
they are only used by some stabs readers. */
extern struct partial_symtab *end_psymtab (struct partial_symtab *pst,
- char **include_list,
+ const char **include_list,
int num_includes,
int capping_symbol_offset,
CORE_ADDR capping_text,
diff --git a/gdb/stack.c b/gdb/stack.c
index cf9125b..95bb631 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -999,7 +999,7 @@ get_last_displayed_sal (struct symtab_and_line *sal)
corresponding to FRAME. */
void
-find_frame_funname (struct frame_info *frame, char **funname,
+find_frame_funname (struct frame_info *frame, const char **funname,
enum language *funlang, struct symbol **funcp)
{
struct symbol *func;
@@ -1095,7 +1095,7 @@ print_frame (struct frame_info *frame, int print_level,
{
struct gdbarch *gdbarch = get_frame_arch (frame);
struct ui_out *uiout = current_uiout;
- char *funname = NULL;
+ const char *funname = NULL;
enum language funlang = language_unknown;
struct ui_stream *stb;
struct cleanup *old_chain, *list_chain;
@@ -1363,7 +1363,7 @@ frame_info (char *addr_exp, int from_tty)
struct symtab *s;
struct frame_info *calling_frame_info;
int numregs;
- char *funname = 0;
+ const char *funname = 0;
enum language funlang = language_unknown;
const char *pc_regname;
int selected_frame_p;
diff --git a/gdb/stack.h b/gdb/stack.h
index 172d7c2..50b2477 100644
--- a/gdb/stack.h
+++ b/gdb/stack.h
@@ -22,7 +22,7 @@
void select_frame_command (char *level_exp, int from_tty);
-void find_frame_funname (struct frame_info *frame, char **funname,
+void find_frame_funname (struct frame_info *frame, const char **funname,
enum language *funlang, struct symbol **funcp);
typedef void (*iterate_over_block_arg_local_vars_cb) (const char *print_name,
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 61f7536..f746551 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -65,8 +65,6 @@
/* Prototypes for local functions */
-static void completion_list_add_name (char *, char *, int, char *, char *);
-
static void rbreak_command (char *, int);
static void types_info (char *, int);
@@ -366,9 +364,9 @@ gdb_mangle_name (struct type *type, int method_id, int signature_id)
char *mangled_name;
struct fn_field *f = TYPE_FN_FIELDLIST1 (type, method_id);
struct fn_field *method = &f[signature_id];
- char *field_name = TYPE_FN_FIELDLIST_NAME (type, method_id);
+ const char *field_name = TYPE_FN_FIELDLIST_NAME (type, method_id);
const char *physname = TYPE_FN_FIELD_PHYSNAME (f, signature_id);
- char *newname = type_name_no_tag (type);
+ const char *newname = type_name_no_tag (type);
/* Does the form of physname indicate that it is the full mangled name
of a constructor (not just the args)? */
@@ -478,7 +476,7 @@ symbol_set_demangled_name (struct general_symbol_info *gsymbol,
/* Return the demangled name of GSYMBOL. */
-char *
+const char *
symbol_get_demangled_name (const struct general_symbol_info *gsymbol)
{
if (gsymbol->language == language_cplus)
@@ -686,12 +684,14 @@ symbol_set_names (struct general_symbol_info *gsymbol,
name with the symbol, we don't need to use the same trick
as Java. */
if (!copy_name)
- gsymbol->name = (char *) linkage_name;
+ gsymbol->name = linkage_name;
else
{
- gsymbol->name = obstack_alloc (&objfile->objfile_obstack, len + 1);
- memcpy (gsymbol->name, linkage_name, len);
- gsymbol->name[len] = '\0';
+ char *name = obstack_alloc (&objfile->objfile_obstack, len + 1);
+
+ memcpy (name, linkage_name, len);
+ name[len] = '\0';
+ gsymbol->name = name;
}
symbol_set_demangled_name (gsymbol, NULL, NULL);
@@ -797,7 +797,7 @@ symbol_set_names (struct general_symbol_info *gsymbol,
/* Return the source code name of a symbol. In languages where
demangling is necessary, this is the demangled name. */
-char *
+const char *
symbol_natural_name (const struct general_symbol_info *gsymbol)
{
switch (gsymbol->language)
@@ -825,7 +825,7 @@ symbol_natural_name (const struct general_symbol_info *gsymbol)
/* Return the demangled name for a symbol based on the language for
that symbol. If no demangled name exists, return NULL. */
-char *
+const char *
symbol_demangled_name (const struct general_symbol_info *gsymbol)
{
switch (gsymbol->language)
@@ -855,7 +855,7 @@ symbol_demangled_name (const struct general_symbol_info *gsymbol)
If there is no distinct demangled name, then returns the same value
(same pointer) as SYMBOL_LINKAGE_NAME. */
-char *
+const char *
symbol_search_name (const struct general_symbol_info *gsymbol)
{
if (gsymbol->language == language_ada)
@@ -3833,8 +3833,9 @@ static char **return_val;
characters. If so, add it to the current completion list. */
static void
-completion_list_add_name (char *symname, char *sym_text, int sym_text_len,
- char *text, char *word)
+completion_list_add_name (const char *symname,
+ const char *sym_text, int sym_text_len,
+ const char *text, const char *word)
{
int newsize;
@@ -3882,13 +3883,14 @@ completion_list_add_name (char *symname, char *sym_text, int sym_text_len,
again and feed all the selectors into the mill. */
static void
-completion_list_objc_symbol (struct minimal_symbol *msymbol, char *sym_text,
- int sym_text_len, char *text, char *word)
+completion_list_objc_symbol (struct minimal_symbol *msymbol,
+ const char *sym_text, int sym_text_len,
+ const char *text, const char *word)
{
static char *tmp = NULL;
static unsigned int tmplen = 0;
- char *method, *category, *selector;
+ const char *method, *category, *selector;
char *tmp2 = NULL;
method = SYMBOL_NATURAL_NAME (msymbol);
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 994f9f2..d9e5f4a 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -81,7 +81,7 @@ struct language_defn;
struct cplus_specific
{
- char *demangled_name;
+ const char *demangled_name;
};
/* Define a structure for the information that is common to all symbol types,
@@ -99,7 +99,7 @@ struct general_symbol_info
the mangled name and demangled name, this is the mangled
name. */
- char *name;
+ const char *name;
/* Value of the symbol. Which member of this union to use, and what
it means, depends on what kind of symbol this is and its
@@ -135,7 +135,7 @@ struct general_symbol_info
currently used by Ada, Java, and Objective C. */
struct mangled_lang
{
- char *demangled_name;
+ const char *demangled_name;
}
mangled_lang;
@@ -166,7 +166,8 @@ struct general_symbol_info
extern void symbol_set_demangled_name (struct general_symbol_info *, char *,
struct objfile *);
-extern char *symbol_get_demangled_name (const struct general_symbol_info *);
+extern const char *symbol_get_demangled_name
+ (const struct general_symbol_info *);
extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *);
@@ -225,7 +226,8 @@ extern void symbol_set_names (struct general_symbol_info *symbol,
#define SYMBOL_NATURAL_NAME(symbol) \
(symbol_natural_name (&(symbol)->ginfo))
-extern char *symbol_natural_name (const struct general_symbol_info *symbol);
+extern const char *symbol_natural_name
+ (const struct general_symbol_info *symbol);
/* Return SYMBOL's name from the point of view of the linker. In
languages like C++ where symbols may be mangled for ease of
@@ -238,7 +240,8 @@ extern char *symbol_natural_name (const struct general_symbol_info *symbol);
that symbol. If no demangled name exists, return NULL. */
#define SYMBOL_DEMANGLED_NAME(symbol) \
(symbol_demangled_name (&(symbol)->ginfo))
-extern char *symbol_demangled_name (const struct general_symbol_info *symbol);
+extern const char *symbol_demangled_name
+ (const struct general_symbol_info *symbol);
/* Macro that returns a version of the name of a symbol that is
suitable for output. In C++ this is the "demangled" form of the
@@ -261,7 +264,7 @@ extern int demangle;
returns the same value (same pointer) as SYMBOL_LINKAGE_NAME. */
#define SYMBOL_SEARCH_NAME(symbol) \
(symbol_search_name (&(symbol)->ginfo))
-extern char *symbol_search_name (const struct general_symbol_info *);
+extern const char *symbol_search_name (const struct general_symbol_info *);
/* Return non-zero if NAME matches the "search" name of SYMBOL.
Whitespace and trailing parentheses are ignored.
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index ede3742..37e1f52 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -2577,7 +2577,8 @@ scope_info (char *args, int from_tty)
struct symbol *sym;
struct minimal_symbol *msym;
struct block *block;
- char *symname, *save_args = args;
+ const char *symname;
+ char *save_args = args;
struct dict_iterator iter;
int j, count = 0;
struct gdbarch *gdbarch;
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index de96fd5..803d20b 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -73,7 +73,7 @@ default_print_typedef (struct type *type, struct symbol *new_symbol,
If SHOW is negative, we never show the details of elements' types. */
void
-type_print (struct type *type, char *varstring, struct ui_file *stream,
+type_print (struct type *type, const char *varstring, struct ui_file *stream,
int show)
{
LA_PRINT_TYPE (type, varstring, stream, show, 0);
diff --git a/gdb/utils.c b/gdb/utils.c
index 1ebb935..1096b3ad 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -2589,7 +2589,7 @@ print_spaces_filtered (int n, struct ui_file *stream)
demangling is off, the name is printed in its "raw" form. */
void
-fprintf_symbol_filtered (struct ui_file *stream, char *name,
+fprintf_symbol_filtered (struct ui_file *stream, const char *name,
enum language lang, int arg_mode)
{
char *demangled;
diff --git a/gdb/valarith.c b/gdb/valarith.c
index b8bcc6b..a17c91a 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -64,7 +64,7 @@ find_size_for_pointer_math (struct type *ptr_type)
sz = 1;
else
{
- char *name;
+ const char *name;
name = TYPE_NAME (ptr_target);
if (name == NULL)
diff --git a/gdb/valops.c b/gdb/valops.c
index 5453b1a..fca601f 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -2005,7 +2005,7 @@ search_struct_field (const char *name, struct value *arg1, int offset,
if (!looking_for_baseclass)
for (i = TYPE_NFIELDS (type) - 1; i >= nbases; i--)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name && (strcmp_iw (t_field_name, name) == 0))
{
@@ -2163,7 +2163,7 @@ search_struct_method (const char *name, struct value **arg1p,
CHECK_TYPEDEF (type);
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; i--)
{
- char *t_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
+ const char *t_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
/* FIXME! May need to check for ARM demangling here. */
if (strncmp (t_field_name, "__", 2) == 0 ||
@@ -2407,7 +2407,7 @@ find_method_list (struct value **argp, const char *method,
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; i--)
{
/* pai: FIXME What about operators and type conversions? */
- char *fn_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
+ const char *fn_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
if (fn_field_name && (strcmp_iw (fn_field_name, method) == 0))
{
@@ -3154,7 +3154,7 @@ check_field (struct type *type, const char *name)
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
{
- char *t_field_name = TYPE_FIELD_NAME (type, i);
+ const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name && (strcmp_iw (t_field_name, name) == 0))
return 1;
@@ -3280,7 +3280,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
for (i = TYPE_NFIELDS (t) - 1; i >= TYPE_N_BASECLASSES (t); i--)
{
- char *t_field_name = TYPE_FIELD_NAME (t, i);
+ const char *t_field_name = TYPE_FIELD_NAME (t, i);
if (t_field_name && strcmp (t_field_name, name) == 0)
{
@@ -3317,7 +3317,7 @@ value_struct_elt_for_reference (struct type *domain, int offset,
for (i = TYPE_NFN_FIELDS (t) - 1; i >= 0; --i)
{
- char *t_field_name = TYPE_FN_FIELDLIST_NAME (t, i);
+ const char *t_field_name = TYPE_FN_FIELDLIST_NAME (t, i);
char dem_opname[64];
if (strncmp (t_field_name, "__", 2) == 0
diff --git a/gdb/value.h b/gdb/value.h
index 4727755..2a2274d 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -777,7 +777,7 @@ extern int record_latest_value (struct value *val);
extern void modify_field (struct type *type, gdb_byte *addr,
LONGEST fieldval, int bitpos, int bitsize);
-extern void type_print (struct type *type, char *varstring,
+extern void type_print (struct type *type, const char *varstring,
struct ui_file *stream, int show);
extern char *type_to_string (struct type *type);
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 8162350..8855ce3 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -3086,7 +3086,7 @@ c_describe_child (struct varobj *parent, int index,
case TYPE_CODE_STRUCT:
case TYPE_CODE_UNION:
{
- char *field_name;
+ const char *field_name;
/* If the type is anonymous and the field has no name,
set an appropriate name. */
@@ -3515,7 +3515,7 @@ cplus_describe_child (struct varobj *parent, int index,
enum accessibility acc = public_field;
int vptr_fieldno;
struct type *basetype = NULL;
- char *field_name;
+ const char *field_name;
vptr_fieldno = get_vptr_fieldno (type, &basetype);
if (strcmp (parent->name, "private") == 0)
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 1a2bb14..86ae8fb 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -882,7 +882,7 @@ enter_line_range (struct subfile *subfile, unsigned beginoffset,
#define RECORD_MINIMAL_SYMBOL(NAME, ADDR, TYPE, SECTION, OBJFILE) \
{ \
- char *namestr; \
+ const char *namestr; \
\
namestr = (NAME); \
if (namestr[0] == '.') ++namestr; \
@@ -986,7 +986,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
char *filestring = " _start_ "; /* Name of the current file. */
- char *last_csect_name; /* Last seen csect's name and value. */
+ const char *last_csect_name; /* Last seen csect's name and value. */
CORE_ADDR last_csect_val;
int last_csect_sec;
@@ -1989,10 +1989,6 @@ init_stringtab (bfd *abfd, file_ptr offset, struct objfile *objfile)
for the psymtab. */
static unsigned int first_fun_line_offset;
-static struct partial_symtab *xcoff_start_psymtab
- (struct objfile *, char *, int,
- struct partial_symbol **, struct partial_symbol **);
-
/* Allocate and partially fill a partial symtab. It will be
completely filled at the end of the symbol list.
@@ -2001,7 +1997,8 @@ static struct partial_symtab *xcoff_start_psymtab
(normal). */
static struct partial_symtab *
-xcoff_start_psymtab (struct objfile *objfile, char *filename, int first_symnum,
+xcoff_start_psymtab (struct objfile *objfile,
+ const char *filename, int first_symnum,
struct partial_symbol **global_syms,
struct partial_symbol **static_syms)
{
@@ -2023,10 +2020,6 @@ xcoff_start_psymtab (struct objfile *objfile, char *filename, int first_symnum,
return result;
}
-static struct partial_symtab *xcoff_end_psymtab
- (struct partial_symtab *, char **, int, int,
- struct partial_symtab **, int, int);
-
/* Close off the current usage of PST.
Returns PST, or NULL if the partial symtab was empty and thrown away.
@@ -2036,7 +2029,7 @@ static struct partial_symtab *xcoff_end_psymtab
are the information for includes and dependencies. */
static struct partial_symtab *
-xcoff_end_psymtab (struct partial_symtab *pst, char **include_list,
+xcoff_end_psymtab (struct partial_symtab *pst, const char **include_list,
int num_includes, int capping_symbol_number,
struct partial_symtab **dependency_list,
int number_dependencies, int textlow_not_set)
@@ -2119,17 +2112,13 @@ xcoff_end_psymtab (struct partial_symtab *pst, char **include_list,
return pst;
}
-static void swap_sym (struct internal_syment *,
- union internal_auxent *, char **, char **,
- unsigned int *, struct objfile *);
-
/* Swap raw symbol at *RAW and put the name in *NAME, the symbol in
*SYMBOL, the first auxent in *AUX. Advance *RAW and *SYMNUMP over
the symbol and its auxents. */
static void
swap_sym (struct internal_syment *symbol, union internal_auxent *aux,
- char **name, char **raw, unsigned int *symnump,
+ const char **name, char **raw, unsigned int *symnump,
struct objfile *objfile)
{
bfd_coff_swap_sym_in (objfile->obfd, *raw, symbol);
@@ -2189,9 +2178,9 @@ scan_xcoff_symtab (struct objfile *objfile)
{
struct gdbarch *gdbarch = get_objfile_arch (objfile);
CORE_ADDR toc_offset = 0; /* toc offset value in data section. */
- char *filestring = NULL;
+ const char *filestring = NULL;
- char *namestring;
+ const char *namestring;
int past_first_source_file = 0;
bfd *abfd;
asection *bfd_sect;
@@ -2201,7 +2190,7 @@ scan_xcoff_symtab (struct objfile *objfile)
struct partial_symtab *pst;
/* List of current psymtab's include files. */
- char **psymtab_include_list;
+ const char **psymtab_include_list;
int includes_allocated;
int includes_used;
@@ -2214,7 +2203,7 @@ scan_xcoff_symtab (struct objfile *objfile)
union internal_auxent main_aux[5];
unsigned int ssymnum;
- char *last_csect_name = NULL; /* Last seen csect's name and value. */
+ const char *last_csect_name = NULL; /* Last seen csect's name and value. */
CORE_ADDR last_csect_val = 0;
int last_csect_sec = 0;
int misc_func_recorded = 0; /* true if any misc. function. */
@@ -2224,8 +2213,8 @@ scan_xcoff_symtab (struct objfile *objfile)
includes_allocated = 30;
includes_used = 0;
- psymtab_include_list = (char **) alloca (includes_allocated *
- sizeof (char *));
+ psymtab_include_list = (const char **) alloca (includes_allocated *
+ sizeof (const char *));
dependencies_allocated = 30;
dependencies_used = 0;
@@ -2619,13 +2608,13 @@ scan_xcoff_symtab (struct objfile *objfile)
psymtab_include_list[includes_used++] = namestring;
if (includes_used >= includes_allocated)
{
- char **orig = psymtab_include_list;
+ const char **orig = psymtab_include_list;
- psymtab_include_list = (char **)
+ psymtab_include_list = (const char **)
alloca ((includes_allocated *= 2) *
- sizeof (char *));
+ sizeof (const char *));
memcpy (psymtab_include_list, orig,
- includes_used * sizeof (char *));
+ includes_used * sizeof (const char *));
}
continue;
}