projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ubsan: score: left shift of negative value
[deliverable/binutils-gdb.git]
/
gdb
/
objc-lang.c
diff --git
a/gdb/objc-lang.c
b/gdb/objc-lang.c
index 1853a69e7542eb4c87c0cfdcdad1f943c0dad355..c423d575db805135c41763a6ffe3b1cf09f07a63 100644
(file)
--- a/
gdb/objc-lang.c
+++ b/
gdb/objc-lang.c
@@
-1,6
+1,6
@@
/* Objective-C language support routines for GDB, the GNU debugger.
/* Objective-C language support routines for GDB, the GNU debugger.
- Copyright (C) 2002-20
19
Free Software Foundation, Inc.
+ Copyright (C) 2002-20
20
Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
Written by Michael Snyder.
Contributed by Apple Computer, Inc.
Written by Michael Snyder.
@@
-75,7
+75,7
@@
struct objc_method {
CORE_ADDR imp;
};
CORE_ADDR imp;
};
-static const struct objfile_
data *
objc_objfile_data;
+static const struct objfile_
key<unsigned int>
objc_objfile_data;
/* Lookup a structure type named "struct NAME", visible in lexical
block BLOCK. If NOERR is nonzero, return zero if NAME is not
/* Lookup a structure type named "struct NAME", visible in lexical
block BLOCK. If NOERR is nonzero, return zero if NAME is not
@@
-401,14
+401,15
@@
extern const struct language_defn objc_language_defn = {
c_language_arch_info,
default_print_array_index,
default_pass_by_reference,
c_language_arch_info,
default_print_array_index,
default_pass_by_reference,
- default_get_string,
c_watch_location_expression,
NULL, /* la_get_symbol_name_matcher */
iterate_over_symbols,
default_search_name_hash,
&default_varobj_ops,
NULL,
c_watch_location_expression,
NULL, /* la_get_symbol_name_matcher */
iterate_over_symbols,
default_search_name_hash,
&default_varobj_ops,
NULL,
- NULL
+ NULL,
+ c_is_string_type_p,
+ "{...}" /* la_struct_too_deep_ellipsis */
};
/*
};
/*
@@
-536,8
+537,8
@@
compare_selectors (const void *a, const void *b)
{
const char *aname, *bname;
{
const char *aname, *bname;
- aname =
SYMBOL_PRINT_NAME (*(struct symbol **) a
);
- bname =
SYMBOL_PRINT_NAME (*(struct symbol **) b
);
+ aname =
(*(struct symbol **) a)->print_name (
);
+ bname =
(*(struct symbol **) b)->print_name (
);
if (aname == NULL || bname == NULL)
error (_("internal: compare_selectors(1)"));
if (aname == NULL || bname == NULL)
error (_("internal: compare_selectors(1)"));
@@
-609,7
+610,7
@@
info_selectors_command (const char *regexp, int from_tty)
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
- name =
MSYMBOL_NATURAL_NAME (msymbol
);
+ name =
msymbol->natural_name (
);
if (name
&& (name[0] == '-' || name[0] == '+')
&& name[1] == '[') /* Got a method name. */
if (name
&& (name[0] == '-' || name[0] == '+')
&& name[1] == '[') /* Got a method name. */
@@
-622,7
+623,7
@@
info_selectors_command (const char *regexp, int from_tty)
if (name == NULL)
{
complaint (_("Bad method name '%s'"),
if (name == NULL)
{
complaint (_("Bad method name '%s'"),
-
MSYMBOL_NATURAL_NAME (msymbol
));
+
msymbol->natural_name (
));
continue;
}
if (regexp == NULL || re_exec(++name) != 0)
continue;
}
if (regexp == NULL || re_exec(++name) != 0)
@@
-649,7
+650,7
@@
info_selectors_command (const char *regexp, int from_tty)
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
- name =
MSYMBOL_NATURAL_NAME (msymbol
);
+ name =
msymbol->natural_name (
);
if (name &&
(name[0] == '-' || name[0] == '+') &&
name[1] == '[') /* Got a method name. */
if (name &&
(name[0] == '-' || name[0] == '+') &&
name[1] == '[') /* Got a method name. */
@@
-674,7
+675,7
@@
info_selectors_command (const char *regexp, int from_tty)
char *p = asel;
QUIT;
char *p = asel;
QUIT;
- name =
SYMBOL_NATURAL_NAME (sym_arr[ix]
);
+ name =
sym_arr[ix]->natural_name (
);
name = strchr (name, ' ') + 1;
if (p[0] && specialcmp(name, p) == 0)
continue; /* Seen this one already (not unique). */
name = strchr (name, ' ') + 1;
if (p[0] && specialcmp(name, p) == 0)
continue; /* Seen this one already (not unique). */
@@
-705,8
+706,8
@@
compare_classes (const void *a, const void *b)
{
const char *aname, *bname;
{
const char *aname, *bname;
- aname =
SYMBOL_PRINT_NAME (*(struct symbol **) a
);
- bname =
SYMBOL_PRINT_NAME (*(struct symbol **) b
);
+ aname =
(*(struct symbol **) a)->print_name (
);
+ bname =
(*(struct symbol **) b)->print_name (
);
if (aname == NULL || bname == NULL)
error (_("internal: compare_classes(1)"));
if (aname == NULL || bname == NULL)
error (_("internal: compare_classes(1)"));
@@
-763,7
+764,7
@@
info_classes_command (const char *regexp, int from_tty)
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
- name =
MSYMBOL_NATURAL_NAME (msymbol
);
+ name =
msymbol->natural_name (
);
if (name &&
(name[0] == '-' || name[0] == '+') &&
name[1] == '[') /* Got a method name. */
if (name &&
(name[0] == '-' || name[0] == '+') &&
name[1] == '[') /* Got a method name. */
@@
-790,7
+791,7
@@
info_classes_command (const char *regexp, int from_tty)
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
for (minimal_symbol *msymbol : objfile->msymbols ())
{
QUIT;
- name =
MSYMBOL_NATURAL_NAME (msymbol
);
+ name =
msymbol->natural_name (
);
if (name &&
(name[0] == '-' || name[0] == '+') &&
name[1] == '[') /* Got a method name. */
if (name &&
(name[0] == '-' || name[0] == '+') &&
name[1] == '[') /* Got a method name. */
@@
-808,7
+809,7
@@
info_classes_command (const char *regexp, int from_tty)
char *p = aclass;
QUIT;
char *p = aclass;
QUIT;
- name =
SYMBOL_NATURAL_NAME (sym_arr[ix]
);
+ name =
sym_arr[ix]->natural_name (
);
name += 2;
if (p[0] && specialcmp(name, p) == 0)
continue; /* Seen this one already (not unique). */
name += 2;
if (p[0] && specialcmp(name, p) == 0)
continue; /* Seen this one already (not unique). */
@@
-1002,7
+1003,7
@@
find_methods (char type, const char *theclass, const char *category,
unsigned int objfile_csym = 0;
unsigned int objfile_csym = 0;
- objc_csym =
(unsigned int *) objfile_data (objfile, objc_objfile_data
);
+ objc_csym =
objc_objfile_data.get (objfile
);
if (objc_csym != NULL && *objc_csym == 0)
/* There are no ObjC symbols in this objfile. Skip it entirely. */
continue;
if (objc_csym != NULL && *objc_csym == 0)
/* There are no ObjC symbols in this objfile. Skip it entirely. */
continue;
@@
-1013,7
+1014,7
@@
find_methods (char type, const char *theclass, const char *category,
/* Check the symbol name first as this can be done entirely without
sending any query to the target. */
/* Check the symbol name first as this can be done entirely without
sending any query to the target. */
- symname =
MSYMBOL_NATURAL_NAME (msymbol
);
+ symname =
msymbol->natural_name (
);
if (symname == NULL)
continue;
if (symname == NULL)
continue;
@@
-1054,18
+1055,14
@@
find_methods (char type, const char *theclass, const char *category,
}
if (objc_csym == NULL)
}
if (objc_csym == NULL)
- {
- objc_csym = XOBNEW (&objfile->objfile_obstack, unsigned int);
- *objc_csym = objfile_csym;
- set_objfile_data (objfile, objc_objfile_data, objc_csym);
- }
+ objc_csym = objc_objfile_data.emplace (objfile, objfile_csym);
else
/* Count of ObjC methods in this objfile should be constant. */
gdb_assert (*objc_csym == objfile_csym);
}
}
else
/* Count of ObjC methods in this objfile should be constant. */
gdb_assert (*objc_csym == objfile_csym);
}
}
-/* Uniquify a
VEC
of strings. */
+/* Uniquify a
vector
of strings. */
static void
uniquify_strings (std::vector<const char *> *strings)
static void
uniquify_strings (std::vector<const char *> *strings)
@@
-1148,14
+1145,14
@@
find_imps (const char *method, std::vector<const char *> *symbol_names)
0).symbol;
if (sym != NULL)
0).symbol;
if (sym != NULL)
- symbol_names->push_back (
SYMBOL_NATURAL_NAME (sym
));
+ symbol_names->push_back (
sym->natural_name (
));
else
{
struct bound_minimal_symbol msym
= lookup_minimal_symbol (selector, 0, 0);
if (msym.minsym != NULL)
else
{
struct bound_minimal_symbol msym
= lookup_minimal_symbol (selector, 0, 0);
if (msym.minsym != NULL)
- symbol_names->push_back (
MSYMBOL_NATURAL_NAME (msym.minsym
));
+ symbol_names->push_back (
msym.minsym->natural_name (
));
}
}
}
}
@@
-1574,9
+1571,3
@@
resolve_msgsend_super_stret (CORE_ADDR pc, CORE_ADDR *new_pc)
return 1;
return 0;
}
return 1;
return 0;
}
-
-void
-_initialize_objc_lang (void)
-{
- objc_objfile_data = register_objfile_data ();
-}
This page took
0.026398 seconds
and
4
git commands to generate.