/* Objective-C language support routines for GDB, the GNU debugger.
- Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2002-2005, 2007-2012 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
Written by Michael Snyder.
"objective-c", /* Language name */
language_objc,
range_check_off,
- type_check_off,
case_sensitive_on,
array_row_major,
macro_expansion_c,
&exp_descriptor_standard,
- objc_parse,
- objc_error,
+ c_parse,
+ c_error,
null_post_parser,
objc_printchar, /* Print a character constant */
objc_printstr, /* Function to print string constant */
c_print_typedef, /* Print a typedef using appropriate syntax */
c_val_print, /* Print a value using appropriate syntax */
c_value_print, /* Print a top-level value */
+ default_read_var_value, /* la_read_var_value */
objc_skip_trampoline, /* Language specific skip_trampoline */
"self", /* name_of_this */
basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
default_print_array_index,
default_pass_by_reference,
default_get_string,
- strcmp_iw_ordered,
+ NULL, /* la_get_symbol_name_cmp */
iterate_over_symbols,
LANG_MAGIC
};
}
/*
- * 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 != ']')
{
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);
{
struct objfile *objfile;
struct minimal_symbol *msymbol;
- char *name;
+ const char *name;
char *val;
int matches = 0;
int maxlen = 0;
}
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. */
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);
{
struct objfile *objfile;
struct minimal_symbol *msymbol;
- char *name;
+ const char *name;
char *val;
int matches = 0;
int maxlen = 0;
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;
{
struct objfile *objfile = NULL;
- char *symname = NULL;
+ const char *symname = NULL;
char ntype = '\0';
char *nclass = NULL;
return 0;
}
+/* Provide a prototype to silence -Wmissing-prototypes. */
+extern initialize_file_ftype _initialize_objc_lang;
+
void
_initialize_objc_lang (void)
{