projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gdb/testsuite: Add "get_endianness" convenience proc
[deliverable/binutils-gdb.git]
/
gdb
/
go-lang.c
diff --git
a/gdb/go-lang.c
b/gdb/go-lang.c
index b72c85758c6ab0b08b2663c4dfa7535836b1f00c..3b80cec4452baa1bb1d235ad05e9378d6456289b 100644
(file)
--- a/
gdb/go-lang.c
+++ b/
gdb/go-lang.c
@@
-1,6
+1,6
@@
/* Go language support routines for GDB, the GNU debugger.
/* Go language support routines for GDB, the GNU debugger.
- Copyright (C) 2012-201
5
Free Software Foundation, Inc.
+ Copyright (C) 2012-201
7
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-195,9
+195,9
@@
unpack_mangled_go_symbol (const char *mangled_name,
/* Pointer to "N" if valid "N<digit(s)>_" found. */
char *method_type;
/* Pointer to the first '.'. */
/* Pointer to "N" if valid "N<digit(s)>_" found. */
char *method_type;
/* Pointer to the first '.'. */
- char *first_dot;
+ c
onst c
har *first_dot;
/* Pointer to the last '.'. */
/* Pointer to the last '.'. */
- char *last_dot;
+ c
onst c
har *last_dot;
/* Non-zero if we saw a pointer indicator. */
int saw_pointer;
/* Non-zero if we saw a pointer indicator. */
int saw_pointer;
@@
-379,12
+379,21
@@
go_demangle (const char *mangled_name, int options)
}
obstack_grow_str0 (&tempbuf, "");
}
obstack_grow_str0 (&tempbuf, "");
- result = xstrdup (obstack_finish (&tempbuf));
+ result = xstrdup (
(const char *)
obstack_finish (&tempbuf));
obstack_free (&tempbuf, NULL);
xfree (name_buf);
return result;
}
obstack_free (&tempbuf, NULL);
xfree (name_buf);
return result;
}
+/* la_sniff_from_mangled_name for Go. */
+
+static int
+go_sniff_from_mangled_name (const char *mangled, char **demangled)
+{
+ *demangled = go_demangle (mangled, 0);
+ return *demangled != NULL;
+}
+
/* Given a Go symbol, return its package or NULL if unknown.
Space for the result is malloc'd, caller must free. */
/* Given a Go symbol, return its package or NULL if unknown.
Space for the result is malloc'd, caller must free. */
@@
-565,9
+574,10
@@
static const struct language_defn go_language_defn =
case_sensitive_on,
array_row_major,
macro_expansion_no,
case_sensitive_on,
array_row_major,
macro_expansion_no,
+ NULL,
&exp_descriptor_c,
go_parse,
&exp_descriptor_c,
go_parse,
- go_error,
+ go_
yy
error,
null_post_parser,
c_printchar, /* Print a character constant. */
c_printstr, /* Function to print string constant. */
null_post_parser,
c_printchar, /* Print a character constant. */
c_printstr, /* Function to print string constant. */
@@
-583,6
+593,7
@@
static const struct language_defn go_language_defn =
basic_lookup_symbol_nonlocal,
basic_lookup_transparent_type,
go_demangle, /* Language specific symbol demangler. */
basic_lookup_symbol_nonlocal,
basic_lookup_transparent_type,
go_demangle, /* Language specific symbol demangler. */
+ go_sniff_from_mangled_name,
NULL, /* Language specific
class_name_from_physname. */
go_op_print_tab, /* Expression operators for printing. */
NULL, /* Language specific
class_name_from_physname. */
go_op_print_tab, /* Expression operators for printing. */
@@
-594,6
+605,7
@@
static const struct language_defn go_language_defn =
default_print_array_index,
default_pass_by_reference,
c_get_string,
default_print_array_index,
default_pass_by_reference,
c_get_string,
+ c_watch_location_expression,
NULL,
iterate_over_symbols,
&default_varobj_ops,
NULL,
iterate_over_symbols,
&default_varobj_ops,
@@
-637,9
+649,9
@@
build_go_types (struct gdbarch *gdbarch)
builtin_go_type->builtin_uint64
= arch_integer_type (gdbarch, 64, 1, "uint64");
builtin_go_type->builtin_float32
builtin_go_type->builtin_uint64
= arch_integer_type (gdbarch, 64, 1, "uint64");
builtin_go_type->builtin_float32
- = arch_float_type (gdbarch, 32, "float32",
NULL
);
+ = arch_float_type (gdbarch, 32, "float32",
floatformats_ieee_single
);
builtin_go_type->builtin_float64
builtin_go_type->builtin_float64
- = arch_float_type (gdbarch, 64, "float64",
NULL
);
+ = arch_float_type (gdbarch, 64, "float64",
floatformats_ieee_double
);
builtin_go_type->builtin_complex64
= arch_complex_type (gdbarch, "complex64",
builtin_go_type->builtin_float32);
builtin_go_type->builtin_complex64
= arch_complex_type (gdbarch, "complex64",
builtin_go_type->builtin_float32);
@@
-655,7
+667,7
@@
static struct gdbarch_data *go_type_data;
const struct builtin_go_type *
builtin_go_type (struct gdbarch *gdbarch)
{
const struct builtin_go_type *
builtin_go_type (struct gdbarch *gdbarch)
{
- return gdbarch_data (gdbarch, go_type_data);
+ return
(const struct builtin_go_type *)
gdbarch_data (gdbarch, go_type_data);
}
extern initialize_file_ftype _initialize_go_language;
}
extern initialize_file_ftype _initialize_go_language;
This page took
0.026512 seconds
and
4
git commands to generate.