/* D language support routines for GDB, the GNU debugger.
- Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ Copyright (C) 2005-2020 Free Software Foundation, Inc.
This file is part of GDB.
#include "c-lang.h"
#include "demangle.h"
#include "cp-support.h"
+#include "gdbarch.h"
/* The name of the symbol to use to get the name of the main subprogram. */
static const char D_MAIN[] = "D main";
d_extensions,
&exp_descriptor_c,
d_parse,
- d_yyerror,
null_post_parser,
c_printchar, /* Print a character constant. */
c_printstr, /* Function to print string constant. */
c_print_type, /* Print a type using appropriate syntax. */
c_print_typedef, /* Print a typedef using appropriate
syntax. */
- d_val_print, /* Print a value using appropriate syntax. */
+ d_value_print_inner, /* la_value_print_inner */
c_value_print, /* Print a top-level value. */
default_read_var_value, /* la_read_var_value */
NULL, /* Language specific skip_trampoline. */
"this",
+ false, /* la_store_sym_names_in_linkage_form_p */
d_lookup_symbol_nonlocal,
basic_lookup_transparent_type,
d_demangle, /* Language specific symbol demangler. */
d_language_arch_info,
default_print_array_index,
default_pass_by_reference,
- c_get_string,
c_watch_location_expression,
- NULL, /* la_get_symbol_name_cmp */
+ NULL, /* la_get_symbol_name_matcher */
iterate_over_symbols,
+ default_search_name_hash,
&default_varobj_ops,
NULL,
NULL,
- LANG_MAGIC
+ c_is_string_type_p,
+ "{...}" /* la_struct_too_deep_ellipsis */
};
/* Build all D language types for the specified architecture. */
/* Basic types. */
builtin_d_type->builtin_void
- = arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");
+ = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
builtin_d_type->builtin_bool
= arch_boolean_type (gdbarch, 8, 1, "bool");
builtin_d_type->builtin_byte
= arch_float_type (gdbarch, gdbarch_long_double_bit (gdbarch),
"ireal", gdbarch_long_double_format (gdbarch));
builtin_d_type->builtin_cfloat
- = arch_complex_type (gdbarch, "cfloat",
- builtin_d_type->builtin_float);
+ = init_complex_type ("cfloat", builtin_d_type->builtin_float);
builtin_d_type->builtin_cdouble
- = arch_complex_type (gdbarch, "cdouble",
- builtin_d_type->builtin_double);
+ = init_complex_type ("cdouble", builtin_d_type->builtin_double);
builtin_d_type->builtin_creal
- = arch_complex_type (gdbarch, "creal",
- builtin_d_type->builtin_real);
+ = init_complex_type ("creal", builtin_d_type->builtin_real);
/* Character types. */
builtin_d_type->builtin_char
return (const struct builtin_d_type *) gdbarch_data (gdbarch, d_type_data);
}
-/* Provide a prototype to silence -Wmissing-prototypes. */
-extern initialize_file_ftype _initialize_d_language;
-
+void _initialize_d_language ();
void
-_initialize_d_language (void)
+_initialize_d_language ()
{
d_type_data = gdbarch_data_register_post_init (build_d_types);
}