GDB (xrefs)

/tmp/gdb-8.1/gdb/d-lang.c
Go to the documentation of this file.
1 /* D language support routines for GDB, the GNU debugger.
2
3 Copyright (C) 2005-2018 Free Software Foundation, Inc.
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 #include "defs.h"
21 #include "symtab.h"
22 #include "language.h"
23 #include "varobj.h"
24 #include "d-lang.h"
25 #include "c-lang.h"
26 #include "demangle.h"
27 #include "cp-support.h"
28
29 /* The name of the symbol to use to get the name of the main subprogram. */
30 static const char D_MAIN[] = "D main";
31
32 /* Function returning the special symbol name used by D for the main
33 procedure in the main program if it is found in minimal symbol list.
34 This function tries to find minimal symbols so that it finds them even
35 if the program was compiled without debugging information. */
36
37 const char *
38 d_main_name (void)
39 {
40 struct bound_minimal_symbol msym;
41
42 msym = lookup_minimal_symbol (D_MAIN, NULL, NULL);
43 if (msym.minsym != NULL)
44 return D_MAIN;
45
46 /* No known entry procedure found, the main program is probably not D. */
47 return NULL;
48 }
49
50 /* Implements the la_demangle language_defn routine for language D. */
51
52 char *
53 d_demangle (const char *symbol, int options)
54 {
55 return gdb_demangle (symbol, options | DMGL_DLANG);
56 }
57
58 /* la_sniff_from_mangled_name implementation for D. */
59
60 static int
61 d_sniff_from_mangled_name (const char *mangled, char **demangled)
62 {
63 *demangled = d_demangle (mangled, 0);
64 return *demangled != NULL;
65 }
66
67 /* Table mapping opcodes into strings for printing operators
68 and precedences of the operators. */
69 static const struct op_print d_op_print_tab[] =
70 {
71 {",", BINOP_COMMA, PREC_COMMA, 0},
72 {"=", BINOP_ASSIGN, PREC_ASSIGN, 1},
73 {"||", BINOP_LOGICAL_OR, PREC_LOGICAL_OR, 0},
74 {"&&", BINOP_LOGICAL_AND, PREC_LOGICAL_AND, 0},
75 {"|", BINOP_BITWISE_IOR, PREC_BITWISE_IOR, 0},
76 {"^", BINOP_BITWISE_XOR, PREC_BITWISE_XOR, 0},
77 {"&", BINOP_BITWISE_AND, PREC_BITWISE_AND, 0},
78 {"==", BINOP_EQUAL, PREC_ORDER, 0},
79 {"!=", BINOP_NOTEQUAL, PREC_ORDER, 0},
80 {"<=", BINOP_LEQ, PREC_ORDER, 0},
81 {">=", BINOP_GEQ, PREC_ORDER, 0},
82 {">", BINOP_GTR, PREC_ORDER, 0},
83 {"<", BINOP_LESS, PREC_ORDER, 0},
84 {">>", BINOP_RSH, PREC_SHIFT, 0},
85 {"<<", BINOP_LSH, PREC_SHIFT, 0},
86 {"+", BINOP_ADD, PREC_ADD, 0},
87 {"-", BINOP_SUB, PREC_ADD, 0},
88 {"~", BINOP_CONCAT, PREC_ADD, 0},
89 {"*", BINOP_MUL, PREC_MUL, 0},
90 {"/", BINOP_DIV, PREC_MUL, 0},
91 {"%", BINOP_REM, PREC_MUL, 0},
92 {"^^", BINOP_EXP, PREC_REPEAT, 0},
93 {"@", BINOP_REPEAT, PREC_REPEAT, 0},
94 {"-", UNOP_NEG, PREC_PREFIX, 0},
95 {"!", UNOP_LOGICAL_NOT, PREC_PREFIX, 0},
96 {"~", UNOP_COMPLEMENT, PREC_PREFIX, 0},
97 {"*", UNOP_IND, PREC_PREFIX, 0},
98 {"&", UNOP_ADDR, PREC_PREFIX, 0},
99 {"sizeof ", UNOP_SIZEOF, PREC_PREFIX, 0},
100 {"++", UNOP_PREINCREMENT, PREC_PREFIX, 0},
101 {"--", UNOP_PREDECREMENT, PREC_PREFIX, 0},
102 {NULL, OP_NULL, PREC_PREFIX, 0}
103 };
104
105 /* Mapping of all D basic data types into the language vector. */
106
107 enum d_primitive_types {
108 d_primitive_type_void,
109 d_primitive_type_bool,
110 d_primitive_type_byte,
111 d_primitive_type_ubyte,
112 d_primitive_type_short,
113 d_primitive_type_ushort,
114 d_primitive_type_int,
115 d_primitive_type_uint,
116 d_primitive_type_long,
117 d_primitive_type_ulong,
118 d_primitive_type_cent, /* Signed 128 bit integer. */
119 d_primitive_type_ucent, /* Unsigned 128 bit integer. */
120 d_primitive_type_float,
121 d_primitive_type_double,
122 d_primitive_type_real,
123 d_primitive_type_ifloat, /* Imaginary float types. */
124 d_primitive_type_idouble,
125 d_primitive_type_ireal,
126 d_primitive_type_cfloat, /* Complex number of two float values. */
127 d_primitive_type_cdouble,
128 d_primitive_type_creal,
129 d_primitive_type_char, /* Unsigned character types. */
130 d_primitive_type_wchar,
131 d_primitive_type_dchar,
132 nr_d_primitive_types
133 };
134
135 /* Implements the la_language_arch_info language_defn routine
136 for language D. */
137
138 static void
139 d_language_arch_info (struct gdbarch *gdbarch,
140 struct language_arch_info *lai)
141 {
142 const struct builtin_d_type *builtin = builtin_d_type (gdbarch);
143
144 lai->string_char_type = builtin->builtin_char;
145 lai->primitive_type_vector
146 = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_d_primitive_types + 1,
147 struct type *);
148
149 lai->primitive_type_vector [d_primitive_type_void]
150 = builtin->builtin_void;
151 lai->primitive_type_vector [d_primitive_type_bool]
152 = builtin->builtin_bool;
153 lai->primitive_type_vector [d_primitive_type_byte]
154 = builtin->builtin_byte;
155 lai->primitive_type_vector [d_primitive_type_ubyte]
156 = builtin->builtin_ubyte;
157 lai->primitive_type_vector [d_primitive_type_short]
158 = builtin->builtin_short;
159 lai->primitive_type_vector [d_primitive_type_ushort]
160 = builtin->builtin_ushort;
161 lai->primitive_type_vector [d_primitive_type_int]
162 = builtin->builtin_int;
163 lai->primitive_type_vector [d_primitive_type_uint]
164 = builtin->builtin_uint;
165 lai->primitive_type_vector [d_primitive_type_long]
166 = builtin->builtin_long;
167 lai->primitive_type_vector [d_primitive_type_ulong]
168 = builtin->builtin_ulong;
169 lai->primitive_type_vector [d_primitive_type_cent]
170 = builtin->builtin_cent;
171 lai->primitive_type_vector [d_primitive_type_ucent]
172 = builtin->builtin_ucent;
173 lai->primitive_type_vector [d_primitive_type_float]
174 = builtin->builtin_float;
175 lai->primitive_type_vector [d_primitive_type_double]
176 = builtin->builtin_double;
177 lai->primitive_type_vector [d_primitive_type_real]
178 = builtin->builtin_real;
179 lai->primitive_type_vector [d_primitive_type_ifloat]
180 = builtin->builtin_ifloat;
181 lai->primitive_type_vector [d_primitive_type_idouble]
182 = builtin->builtin_idouble;
183 lai->primitive_type_vector [d_primitive_type_ireal]
184 = builtin->builtin_ireal;
185 lai->primitive_type_vector [d_primitive_type_cfloat]
186 = builtin->builtin_cfloat;
187 lai->primitive_type_vector [d_primitive_type_cdouble]
188 = builtin->builtin_cdouble;
189 lai->primitive_type_vector [d_primitive_type_creal]
190 = builtin->builtin_creal;
191 lai->primitive_type_vector [d_primitive_type_char]
192 = builtin->builtin_char;
193 lai->primitive_type_vector [d_primitive_type_wchar]
194 = builtin->builtin_wchar;
195 lai->primitive_type_vector [d_primitive_type_dchar]
196 = builtin->builtin_dchar;
197
198 lai->bool_type_symbol = "bool";
199 lai->bool_type_default = builtin->builtin_bool;
200 }
201
202 static const char *d_extensions[] =
203 {
204 ".d", NULL
205 };
206
207 extern const struct language_defn d_language_defn =
208 {
209 "d",
210 "D",
211 language_d,
212 range_check_off,
213 case_sensitive_on,
214 array_row_major,
215 macro_expansion_no,
216 d_extensions,
217 &exp_descriptor_c,
218 d_parse,
219 d_yyerror,
220 null_post_parser,
221 c_printchar, /* Print a character constant. */
222 c_printstr, /* Function to print string constant. */
223 c_emit_char, /* Print a single char. */
224 c_print_type, /* Print a type using appropriate syntax. */
225 c_print_typedef, /* Print a typedef using appropriate
226 syntax. */
227 d_val_print, /* Print a value using appropriate syntax. */
228 c_value_print, /* Print a top-level value. */
229 default_read_var_value, /* la_read_var_value */
230 NULL, /* Language specific skip_trampoline. */
231 "this",
232 d_lookup_symbol_nonlocal,
233 basic_lookup_transparent_type,
234 d_demangle, /* Language specific symbol demangler. */
235 d_sniff_from_mangled_name,
236 NULL, /* Language specific
237 class_name_from_physname. */
238 d_op_print_tab, /* Expression operators for printing. */
239 1, /* C-style arrays. */
240 0, /* String lower bound. */
241 default_word_break_characters,
242 default_collect_symbol_completion_matches,
243 d_language_arch_info,
244 default_print_array_index,
245 default_pass_by_reference,
246 c_get_string,
247 c_watch_location_expression,
248 NULL, /* la_get_symbol_name_matcher */
249 iterate_over_symbols,
250 default_search_name_hash,
251 &default_varobj_ops,
252 NULL,
253 NULL,
254 LANG_MAGIC
255 };
256
257 /* Build all D language types for the specified architecture. */
258
259 static void *
260 build_d_types (struct gdbarch *gdbarch)
261 {
262 struct builtin_d_type *builtin_d_type
263 = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct builtin_d_type);
264
265 /* Basic types. */
266 builtin_d_type->builtin_void
267 = arch_type (gdbarch, TYPE_CODE_VOID, TARGET_CHAR_BIT, "void");
268 builtin_d_type->builtin_bool
269 = arch_boolean_type (gdbarch, 8, 1, "bool");
270 builtin_d_type->builtin_byte
271 = arch_integer_type (gdbarch, 8, 0, "byte");
272 builtin_d_type->builtin_ubyte
273 = arch_integer_type (gdbarch, 8, 1, "ubyte");
274 builtin_d_type->builtin_short
275 = arch_integer_type (gdbarch, 16, 0, "short");
276 builtin_d_type->builtin_ushort
277 = arch_integer_type (gdbarch, 16, 1, "ushort");
278 builtin_d_type->builtin_int
279 = arch_integer_type (gdbarch, 32, 0, "int");
280 builtin_d_type->builtin_uint
281 = arch_integer_type (gdbarch, 32, 1, "uint");
282 builtin_d_type->builtin_long
283 = arch_integer_type (gdbarch, 64, 0, "long");
284 builtin_d_type->builtin_ulong
285 = arch_integer_type (gdbarch, 64, 1, "ulong");
286 builtin_d_type->builtin_cent
287 = arch_integer_type (gdbarch, 128, 0, "cent");
288 builtin_d_type->builtin_ucent
289 = arch_integer_type (gdbarch, 128, 1, "ucent");
290 builtin_d_type->builtin_float
291 = arch_float_type (gdbarch, gdbarch_float_bit (gdbarch),
292 "float", gdbarch_float_format (gdbarch));
293 builtin_d_type->builtin_double
294 = arch_float_type (gdbarch, gdbarch_double_bit (gdbarch),
295 "double", gdbarch_double_format (gdbarch));
296 builtin_d_type->builtin_real
297 = arch_float_type (gdbarch, gdbarch_long_double_bit (gdbarch),
298 "real", gdbarch_long_double_format (gdbarch));
299
300 TYPE_INSTANCE_FLAGS (builtin_d_type->builtin_byte)
301 |= TYPE_INSTANCE_FLAG_NOTTEXT;
302 TYPE_INSTANCE_FLAGS (builtin_d_type->builtin_ubyte)
303 |= TYPE_INSTANCE_FLAG_NOTTEXT;
304
305 /* Imaginary and complex types. */
306 builtin_d_type->builtin_ifloat
307 = arch_float_type (gdbarch, gdbarch_float_bit (gdbarch),
308 "ifloat", gdbarch_float_format (gdbarch));
309 builtin_d_type->builtin_idouble
310 = arch_float_type (gdbarch, gdbarch_double_bit (gdbarch),
311 "idouble", gdbarch_double_format (gdbarch));
312 builtin_d_type->builtin_ireal
313 = arch_float_type (gdbarch, gdbarch_long_double_bit (gdbarch),
314 "ireal", gdbarch_long_double_format (gdbarch));
315 builtin_d_type->builtin_cfloat
316 = arch_complex_type (gdbarch, "cfloat",
317 builtin_d_type->builtin_float);
318 builtin_d_type->builtin_cdouble
319 = arch_complex_type (gdbarch, "cdouble",
320 builtin_d_type->builtin_double);
321 builtin_d_type->builtin_creal
322 = arch_complex_type (gdbarch, "creal",
323 builtin_d_type->builtin_real);
324
325 /* Character types. */
326 builtin_d_type->builtin_char
327 = arch_character_type (gdbarch, 8, 1, "char");
328 builtin_d_type->builtin_wchar
329 = arch_character_type (gdbarch, 16, 1, "wchar");
330 builtin_d_type->builtin_dchar
331 = arch_character_type (gdbarch, 32, 1, "dchar");
332
333 return builtin_d_type;
334 }
335
336 static struct gdbarch_data *d_type_data;
337
338 /* Return the D type table for the specified architecture. */
339
340 const struct builtin_d_type *
341 builtin_d_type (struct gdbarch *gdbarch)
342 {
343 return (const struct builtin_d_type *) gdbarch_data (gdbarch, d_type_data);
344 }
345
346 void
347 _initialize_d_language (void)
348 {
349 d_type_data = gdbarch_data_register_post_init (build_d_types);
350 }
d_extensions
static const char * d_extensions[]
Definition: d-lang.c:202
gdbarch
Definition: gdbarch.c:127
d_sniff_from_mangled_name
static int d_sniff_from_mangled_name(const char *mangled, char **demangled)
Definition: d-lang.c:61
d_primitive_type_ucent
Definition: d-lang.c:119
PREC_ADD
Definition: parser-defs.h:298
d_type_data
static struct gdbarch_data * d_type_data
Definition: d-lang.c:336
d_primitive_type_double
Definition: d-lang.c:121
arch_type
struct type * arch_type(struct gdbarch *gdbarch, enum type_code code, int bit, const char *name)
Definition: gdbtypes.c:4941
gdbarch_double_format
const struct floatformat ** gdbarch_double_format(struct gdbarch *gdbarch)
Definition: gdbarch.c:1730
d_primitive_type_byte
Definition: d-lang.c:110
d_primitive_type_ulong
Definition: d-lang.c:117
range_check_off
Definition: language.h:61
PREC_PREFIX
Definition: parser-defs.h:299
default_search_name_hash
unsigned int default_search_name_hash(const char *string0)
Definition: dictionary.c:769
builtin_d_type::builtin_dchar
struct type * builtin_dchar
Definition: d-lang.h:54
d_language_defn
const struct language_defn d_language_defn
GDBARCH_OBSTACK_CALLOC
#define GDBARCH_OBSTACK_CALLOC(GDBARCH, NR, TYPE)
Definition: gdbarch.h:1708
default_word_break_characters
const char * default_word_break_characters(void)
Definition: language.c:679
PREC_ORDER
Definition: parser-defs.h:298
gdbarch_long_double_format
const struct floatformat ** gdbarch_long_double_format(struct gdbarch *gdbarch)
Definition: gdbarch.c:1763
gdbarch_data
void * gdbarch_data(struct gdbarch *gdbarch, struct gdbarch_data *data)
Definition: gdbarch.c:5169
TYPE_INSTANCE_FLAG_NOTTEXT
Definition: gdbtypes.h:195
d_primitive_type_ushort
Definition: d-lang.c:113
arch_character_type
struct type * arch_character_type(struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
Definition: gdbtypes.c:4979
builtin_d_type::builtin_ucent
struct type * builtin_ucent
Definition: d-lang.h:42
PREC_BITWISE_XOR
Definition: parser-defs.h:297
d_primitive_type_creal
Definition: d-lang.c:128
varobj.h
builtin_d_type::builtin_char
struct type * builtin_char
Definition: d-lang.h:52
d_primitive_type_long
Definition: d-lang.c:116
default_read_var_value
struct value * default_read_var_value(struct symbol *var, const struct block *var_block, struct frame_info *frame)
Definition: findvar.c:587
cp-support.h
builtin_d_type::builtin_int
struct type * builtin_int
Definition: d-lang.h:37
builtin_d_type::builtin_cfloat
struct type * builtin_cfloat
Definition: d-lang.h:49
builtin_d_type::builtin_uint
struct type * builtin_uint
Definition: d-lang.h:38
d_primitive_type_bool
Definition: d-lang.c:109
language_arch_info::string_char_type
struct type * string_char_type
Definition: language.h:122
builtin_d_type::builtin_ushort
struct type * builtin_ushort
Definition: d-lang.h:36
defs.h
arch_boolean_type
struct type * arch_boolean_type(struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
Definition: gdbtypes.c:4996
arch_complex_type
struct type * arch_complex_type(struct gdbarch *gdbarch, const char *name, struct type *target_type)
Definition: gdbtypes.c:5044
c_get_string
void c_get_string(struct value *value, gdb_byte **buffer, int *length, struct type **char_type, const char **charset)
Definition: c-lang.c:236
case_sensitive_on
Definition: language.h:92
op_print
Definition: parser-defs.h:305
GDBARCH_OBSTACK_ZALLOC
#define GDBARCH_OBSTACK_ZALLOC(GDBARCH, TYPE)
Definition: gdbarch.h:1709
arch_integer_type
struct type * arch_integer_type(struct gdbarch *gdbarch, int bit, int unsigned_p, const char *name)
Definition: gdbtypes.c:4962
PREC_LOGICAL_OR
Definition: parser-defs.h:296
language_defn
Definition: language.h:132
d_yyerror
void d_yyerror(const char *)
TYPE_CODE_VOID
Definition: gdbtypes.h:124
symtab.h
array_row_major
Definition: language.h:81
gdb_demangle
char * gdb_demangle(const char *name, int options)
Definition: cp-support.c:1518
TYPE_INSTANCE_FLAGS
#define TYPE_INSTANCE_FLAGS(thistype)
Definition: gdbtypes.h:1222
d_primitive_type_idouble
Definition: d-lang.c:124
builtin_d_type::builtin_void
struct type * builtin_void
Definition: d-lang.h:31
d_primitive_type_cdouble
Definition: d-lang.c:127
exp_descriptor_c
const struct exp_descriptor exp_descriptor_c
Definition: c-lang.c:817
builtin_d_type::builtin_ireal
struct type * builtin_ireal
Definition: d-lang.h:48
language_arch_info::bool_type_default
struct type * bool_type_default
Definition: language.h:127
builtin_d_type
Definition: d-lang.h:29
PREC_MUL
Definition: parser-defs.h:298
c_emit_char
void c_emit_char(int c, struct type *type, struct ui_file *stream, int quoter)
Definition: c-lang.c:143
arch_float_type
struct type * arch_float_type(struct gdbarch *gdbarch, int bit, const char *name, const struct floatformat **floatformats)
Definition: gdbtypes.c:5014
bound_minimal_symbol
Definition: minsyms.h:29
d_primitive_type_float
Definition: d-lang.c:120
language_arch_info::bool_type_symbol
const char * bool_type_symbol
Definition: language.h:125
default_pass_by_reference
int default_pass_by_reference(struct type *type)
Definition: language.c:669
basic_lookup_transparent_type
struct type * basic_lookup_transparent_type(const char *name)
Definition: symtab.c:2792
TARGET_CHAR_BIT
#define TARGET_CHAR_BIT
Definition: host-defs.h:29
type
Definition: gdbtypes.h:749
d_parse
int d_parse(struct parser_state *par_state)
Definition: d-exp.c:3344
language.h
D_MAIN
static const char D_MAIN[]
Definition: d-lang.c:30
null_post_parser
void null_post_parser(expression_up *exp, int void_context_p)
Definition: parse.c:1319
gdbarch_double_bit
int gdbarch_double_bit(struct gdbarch *gdbarch)
Definition: gdbarch.c:1713
builtin_d_type::builtin_byte
struct type * builtin_byte
Definition: d-lang.h:33
default_print_array_index
void default_print_array_index(struct value *index_value, struct ui_file *stream, const struct value_print_options *options)
Definition: language.c:687
builtin_d_type::builtin_short
struct type * builtin_short
Definition: d-lang.h:35
d_language_arch_info
static void d_language_arch_info(struct gdbarch *gdbarch, struct language_arch_info *lai)
Definition: d-lang.c:139
c_print_typedef
void c_print_typedef(struct type *, struct symbol *, struct ui_file *)
Definition: c-typeprint.c:180
d_lookup_symbol_nonlocal
struct block_symbol d_lookup_symbol_nonlocal(const struct language_defn *, const char *, const struct block *, const domain_enum)
Definition: d-namespace.c:510
nr_d_primitive_types
Definition: d-lang.c:132
language_d
Definition: defs.h:210
d_primitive_type_uint
Definition: d-lang.c:115
d_primitive_type_short
Definition: d-lang.c:112
c_printstr
void c_printstr(struct ui_file *stream, struct type *type, const gdb_byte *string, unsigned int length, const char *user_encoding, int force_ellipses, const struct value_print_options *options)
Definition: c-lang.c:186
d_primitive_type_ifloat
Definition: d-lang.c:123
builtin_d_type::builtin_long
struct type * builtin_long
Definition: d-lang.h:39
default_collect_symbol_completion_matches
void default_collect_symbol_completion_matches(completion_tracker &tracker, complete_symbol_mode mode, symbol_name_match_type name_match_type, const char *text, const char *word, enum type_code code)
Definition: symtab.c:5190
builtin_d_type::builtin_cent
struct type * builtin_cent
Definition: d-lang.h:41
d_primitive_types
d_primitive_types
Definition: d-lang.c:107
c_watch_location_expression
gdb::unique_xmalloc_ptr< char > c_watch_location_expression(struct type *type, CORE_ADDR addr)
Definition: c-lang.c:712
macro_expansion_no
Definition: language.h:103
builtin_d_type::builtin_ulong
struct type * builtin_ulong
Definition: d-lang.h:40
builtin_d_type::builtin_ifloat
struct type * builtin_ifloat
Definition: d-lang.h:46
d_primitive_type_ubyte
Definition: d-lang.c:111
builtin_d_type::builtin_double
struct type * builtin_double
Definition: d-lang.h:44
builtin_d_type::builtin_float
struct type * builtin_float
Definition: d-lang.h:43
default_varobj_ops
#define default_varobj_ops
Definition: varobj.h:236
d_demangle
char * d_demangle(const char *symbol, int options)
Definition: d-lang.c:53
d-lang.h
c-lang.h
d_primitive_type_cent
Definition: d-lang.c:118
PREC_BITWISE_IOR
Definition: parser-defs.h:297
c_print_type
void c_print_type(struct type *, const char *, struct ui_file *, int, int, const struct type_print_options *)
Definition: c-typeprint.c:164
d_primitive_type_wchar
Definition: d-lang.c:130
PREC_BITWISE_AND
Definition: parser-defs.h:297
d_primitive_type_void
Definition: d-lang.c:108
gdbarch_float_bit
int gdbarch_float_bit(struct gdbarch *gdbarch)
Definition: gdbarch.c:1680
builtin_d_type::builtin_creal
struct type * builtin_creal
Definition: d-lang.h:51
builtin_d_type::builtin_real
struct type * builtin_real
Definition: d-lang.h:45
d_op_print_tab
static const struct op_print d_op_print_tab[]
Definition: d-lang.c:69
PREC_ASSIGN
Definition: parser-defs.h:296
d_main_name
const char * d_main_name(void)
Definition: d-lang.c:38
c_printchar
void c_printchar(int c, struct type *type, struct ui_file *stream)
Definition: c-lang.c:153
_initialize_d_language
void _initialize_d_language(void)
Definition: d-lang.c:347
language_arch_info
Definition: language.h:109
symbol
Definition: symtab.h:1049
gdbarch_float_format
const struct floatformat ** gdbarch_float_format(struct gdbarch *gdbarch)
Definition: gdbarch.c:1697
PREC_REPEAT
Definition: parser-defs.h:298
build_d_types
static void * build_d_types(struct gdbarch *gdbarch)
Definition: d-lang.c:260
builtin_d_type::builtin_idouble
struct type * builtin_idouble
Definition: d-lang.h:47
d_primitive_type_ireal
Definition: d-lang.c:125
iterate_over_symbols
void iterate_over_symbols(const struct block *block, const lookup_name_info &name, const domain_enum domain, gdb::function_view< symbol_found_callback_ftype > callback)
Definition: symtab.c:2849
PREC_SHIFT
Definition: parser-defs.h:298
d_primitive_type_char
Definition: d-lang.c:129
LANG_MAGIC
#define LANG_MAGIC
Definition: language.h:438
builtin_d_type::builtin_ubyte
struct type * builtin_ubyte
Definition: d-lang.h:34
gdbarch_long_double_bit
int gdbarch_long_double_bit(struct gdbarch *gdbarch)
Definition: gdbarch.c:1746
PREC_COMMA
Definition: parser-defs.h:296
d_primitive_type_cfloat
Definition: d-lang.c:126
gdbarch_data
Definition: gdbarch.c:5084
language_arch_info::primitive_type_vector
struct type ** primitive_type_vector
Definition: language.h:115
lookup_minimal_symbol
struct bound_minimal_symbol lookup_minimal_symbol(const char *name, const char *sfile, struct objfile *objf)
Definition: minsyms.c:311
c_value_print
void c_value_print(struct value *, struct ui_file *, const struct value_print_options *)
Definition: c-valprint.c:571
d_primitive_type_int
Definition: d-lang.c:114
d_primitive_type_real
Definition: d-lang.c:122
d_primitive_type_dchar
Definition: d-lang.c:131
gdbarch_data_register_post_init
struct gdbarch_data * gdbarch_data_register_post_init(gdbarch_data_post_init_ftype *post_init)
Definition: gdbarch.c:5136
builtin_d_type::builtin_bool
struct type * builtin_bool
Definition: d-lang.h:32
PREC_LOGICAL_AND
Definition: parser-defs.h:297
builtin_d_type::builtin_wchar
struct type * builtin_wchar
Definition: d-lang.h:53
d_val_print
void d_val_print(struct type *type, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, struct value *val, const struct value_print_options *options)
Definition: d-valprint.c:76
builtin_d_type::builtin_cdouble
struct type * builtin_cdouble
Definition: d-lang.h:50
builtin_d_type
const struct builtin_d_type * builtin_d_type(struct gdbarch *gdbarch)
Definition: d-lang.c:341