* config/mn10300/tm-mn10300.h (INIT_FRAME_PC): Delete.
[deliverable/binutils-gdb.git] / gdb / value.h
CommitLineData
c906108c 1/* Definitions for values of C expressions, for GDB.
b6ba6518
KB
2 Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
3 1996, 1997, 1998, 1999, 2000, 2001
338d7c5c 4 Free Software Foundation, Inc.
c906108c 5
c5aa993b 6 This file is part of GDB.
c906108c 7
c5aa993b
JM
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
c906108c 12
c5aa993b
JM
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
c906108c 17
c5aa993b
JM
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. */
c906108c
SS
22
23#if !defined (VALUE_H)
24#define VALUE_H 1
25
d16aafd8
AC
26#include "doublest.h"
27
c906108c
SS
28/*
29 * The structure which defines the type of a value. It should never
30 * be possible for a program lval value to survive over a call to the inferior
31 * (ie to be put into the history list or an internal variable).
32 */
c906108c
SS
33
34struct value
35 {
36 /* Type of value; either not an lval, or one of the various
37 different possible kinds of lval. */
38 enum lval_type lval;
39 /* Is it modifiable? Only relevant if lval != not_lval. */
40 int modifiable;
41 /* Location of value (if lval). */
42 union
43 {
c2d11a7d
JM
44 /* If lval == lval_memory, this is the address in the inferior.
45 If lval == lval_register, this is the byte offset into the
46 registers structure. */
c906108c
SS
47 CORE_ADDR address;
48 /* Pointer to internal variable. */
49 struct internalvar *internalvar;
50 /* Number of register. Only used with
51 lval_reg_frame_relative. */
52 int regnum;
c5aa993b
JM
53 }
54 location;
c906108c 55 /* Describes offset of a value within lval of a structure in bytes.
c2d11a7d
JM
56 If lval == lval_memory, this is an offset to the address.
57 If lval == lval_register, this is a further offset from
58 location.address within the registers structure.
59 Note also the member embedded_offset below. */
c5aa993b 60 int offset;
c906108c
SS
61 /* Only used for bitfields; number of bits contained in them. */
62 int bitsize;
63 /* Only used for bitfields; position of start of field.
64 For BITS_BIG_ENDIAN=0 targets, it is the position of the LSB.
65 For BITS_BIG_ENDIAN=1 targets, it is the position of the MSB. */
66 int bitpos;
67 /* Frame value is relative to. In practice, this address is only
68 used if the value is stored in several registers in other than
69 the current frame, and these registers have not all been saved
70 at the same place in memory. This will be described in the
71 lval enum above as "lval_reg_frame_relative". */
72 CORE_ADDR frame_addr;
a44999d5 73
c906108c
SS
74 /* Type of the value. */
75 struct type *type;
c906108c 76
a44999d5
JB
77 /* If a value represents a C++ object, then the `type' field gives
78 the object's compile-time type. If the object actually belongs
79 to some class derived from `type', perhaps with other base
80 classes and additional members, then `type' is just a subobject
81 of the real thing, and the full object is probably larger than
82 `type' would suggest.
83
84 If `type' is a dynamic class (i.e. one with a vtable), then GDB
85 can actually determine the object's run-time type by looking at
86 the run-time type information in the vtable. When this
87 information is available, we may elect to read in the entire
88 object, for several reasons:
89
90 - When printing the value, the user would probably rather see
91 the full object, not just the limited portion apparent from
92 the compile-time type.
93
94 - If `type' has virtual base classes, then even printing
95 `type' alone may require reaching outside the `type'
96 portion of the object to wherever the virtual base class
97 has been stored.
98
99 When we store the entire object, `enclosing_type' is the
100 run-time type --- the complete object --- and `embedded_offset'
101 is the offset of `type' within that larger type, in bytes. The
102 VALUE_CONTENTS macro takes `embedded_offset' into account, so
103 most GDB code continues to see the `type' portion of the value,
104 just as the inferior would.
105
106 If `type' is a pointer to an object, then `enclosing_type' is a
107 pointer to the object's run-time type, and `pointed_to_offset'
108 is the offset in bytes from the full object to the pointed-to
109 object --- that is, the value `embedded_offset' would have if
110 we followed the pointer and fetched the complete object. (I
111 don't really see the point. Why not just determine the
112 run-time type when you indirect, and avoid the special case?
113 The contents don't matter until you indirect anyway.)
114
115 If we're not doing anything fancy, `enclosing_type' is equal to
116 `type', and `embedded_offset' is zero, so everything works
117 normally. */
c906108c 118 struct type *enclosing_type;
a44999d5
JB
119 int embedded_offset;
120 int pointed_to_offset;
121
c906108c
SS
122 /* Values are stored in a chain, so that they can be deleted
123 easily over calls to the inferior. Values assigned to internal
124 variables or put into the value history are taken off this
125 list. */
126 struct value *next;
127
128 /* ??? When is this used? */
c5aa993b
JM
129 union
130 {
131 CORE_ADDR memaddr;
132 char *myaddr;
133 }
134 substring_addr;
c906108c
SS
135
136 /* Register number if the value is from a register. Is not kept
137 if you take a field of a structure that is stored in a
138 register. Shouldn't it be? */
139 short regno;
140 /* If zero, contents of this value are in the contents field.
141 If nonzero, contents are in inferior memory at address
142 in the location.address field plus the offset field
d7491b3f
EZ
143 (and the lval field should be lval_memory).
144
145 WARNING: This field is used by the code which handles
146 watchpoints (see breakpoint.c) to decide whether a particular
147 value can be watched by hardware watchpoints. If the lazy flag
148 is set for some member of a value chain, it is assumed that
149 this member of the chain doesn't need to be watched as part of
150 watching the value itself. This is how GDB avoids watching the
151 entire struct or array when the user wants to watch a single
152 struct member or array element. If you ever change the way
153 lazy flag is set and reset, be sure to consider this use as
154 well! */
c906108c
SS
155 char lazy;
156 /* If nonzero, this is the value of a variable which does not
157 actually exist in the program. */
158 char optimized_out;
c906108c
SS
159 /* The BFD section associated with this value. */
160 asection *bfd_section;
161 /* Actual contents of the value. For use of this value; setting
162 it uses the stuff above. Not valid if lazy is nonzero.
163 Target byte-order. We force it to be aligned properly for any
164 possible value. Note that a value therefore extends beyond
165 what is declared here. */
c5aa993b
JM
166 union
167 {
168 long contents[1];
169 double force_double_align;
170 LONGEST force_longlong_align;
171 char *literal_data;
172 }
173 aligner;
c906108c
SS
174 /* Do not add any new members here -- contents above will trash them */
175 };
176
177typedef struct value *value_ptr;
178
179#define VALUE_TYPE(val) (val)->type
180#define VALUE_ENCLOSING_TYPE(val) (val)->enclosing_type
181#define VALUE_LAZY(val) (val)->lazy
182/* VALUE_CONTENTS and VALUE_CONTENTS_RAW both return the address of
183 the gdb buffer used to hold a copy of the contents of the lval.
184 VALUE_CONTENTS is used when the contents of the buffer are needed --
185 it uses value_fetch_lazy() to load the buffer from the process being
186 debugged if it hasn't already been loaded. VALUE_CONTENTS_RAW is
187 used when data is being stored into the buffer, or when it is
188 certain that the contents of the buffer are valid.
189 Note: The contents pointer is adjusted by the offset required to
190 get to the real subobject, if the value happens to represent
191 something embedded in a larger run-time object. */
192
193#define VALUE_CONTENTS_RAW(val) ((char *) (val)->aligner.contents + (val)->embedded_offset)
194#define VALUE_CONTENTS(val) ((void)(VALUE_LAZY(val) && value_fetch_lazy(val)),\
195 VALUE_CONTENTS_RAW(val))
196
197/* The ALL variants of the above two macros do not adjust the returned
198 pointer by the embedded_offset value. */
c5aa993b 199
c906108c
SS
200#define VALUE_CONTENTS_ALL_RAW(val) ((char *) (val)->aligner.contents)
201#define VALUE_CONTENTS_ALL(val) ((void) (VALUE_LAZY(val) && value_fetch_lazy(val)),\
202 VALUE_CONTENTS_ALL_RAW(val))
c5aa993b
JM
203
204
a14ed312 205extern int value_fetch_lazy (value_ptr val);
c906108c
SS
206
207#define VALUE_LVAL(val) (val)->lval
208#define VALUE_ADDRESS(val) (val)->location.address
209#define VALUE_INTERNALVAR(val) (val)->location.internalvar
210#define VALUE_FRAME_REGNUM(val) ((val)->location.regnum)
211#define VALUE_FRAME(val) ((val)->frame_addr)
212#define VALUE_OFFSET(val) (val)->offset
213#define VALUE_BITSIZE(val) (val)->bitsize
214#define VALUE_BITPOS(val) (val)->bitpos
215#define VALUE_NEXT(val) (val)->next
216#define VALUE_REGNO(val) (val)->regno
217#define VALUE_OPTIMIZED_OUT(val) ((val)->optimized_out)
218#define VALUE_EMBEDDED_OFFSET(val) ((val)->embedded_offset)
219#define VALUE_POINTED_TO_OFFSET(val) ((val)->pointed_to_offset)
220#define VALUE_BFD_SECTION(val) ((val)->bfd_section)
221
222/* Convert a REF to the object referenced. */
223
224#define COERCE_REF(arg) \
225do { struct type *value_type_arg_tmp = check_typedef (VALUE_TYPE (arg));\
226 if (TYPE_CODE (value_type_arg_tmp) == TYPE_CODE_REF) \
227 arg = value_at_lazy (TYPE_TARGET_TYPE (value_type_arg_tmp), \
4478b372
JB
228 unpack_pointer (VALUE_TYPE (arg), \
229 VALUE_CONTENTS (arg)), \
c906108c
SS
230 VALUE_BFD_SECTION (arg)); \
231 } while (0)
232
233/* If ARG is an array, convert it to a pointer.
234 If ARG is an enum, convert it to an integer.
235 If ARG is a function, convert it to a function pointer.
236
237 References are dereferenced. */
238
239#define COERCE_ARRAY(arg) \
240do { COERCE_REF(arg); \
241 if (current_language->c_style_arrays \
242 && TYPE_CODE (VALUE_TYPE (arg)) == TYPE_CODE_ARRAY) \
243 arg = value_coerce_array (arg); \
244 if (TYPE_CODE (VALUE_TYPE (arg)) == TYPE_CODE_FUNC) \
245 arg = value_coerce_function (arg); \
246} while (0)
247
248#define COERCE_NUMBER(arg) \
249 do { COERCE_ARRAY(arg); COERCE_ENUM(arg); } while (0)
250
251#define COERCE_VARYING_ARRAY(arg, real_arg_type) \
252{ if (chill_varying_type (real_arg_type)) \
253 arg = varying_to_slice (arg), real_arg_type = VALUE_TYPE (arg); }
254
255/* If ARG is an enum, convert it to an integer. */
256
257#define COERCE_ENUM(arg) { \
258 if (TYPE_CODE (check_typedef (VALUE_TYPE (arg))) == TYPE_CODE_ENUM) \
259 arg = value_cast (builtin_type_unsigned_int, arg); \
260}
261
262/* Internal variables (variables for convenience of use of debugger)
263 are recorded as a chain of these structures. */
264
265struct internalvar
c5aa993b
JM
266 {
267 struct internalvar *next;
268 char *name;
269 value_ptr value;
270 };
c906108c
SS
271
272/* Pointer to member function. Depends on compiler implementation. */
273
274#define METHOD_PTR_IS_VIRTUAL(ADDR) ((ADDR) & 0x80000000)
275#define METHOD_PTR_FROM_VOFFSET(OFFSET) (0x80000000 + (OFFSET))
276#define METHOD_PTR_TO_VOFFSET(ADDR) (~0x80000000 & (ADDR))
c906108c 277\f
c5aa993b 278
c906108c
SS
279#include "symtab.h"
280#include "gdbtypes.h"
281#include "expression.h"
282
c906108c
SS
283struct frame_info;
284struct fn_field;
c906108c 285
d9fcf2fb 286extern void print_address_demangle (CORE_ADDR, struct ui_file *, int);
c906108c 287
a14ed312 288extern LONGEST value_as_long (value_ptr val);
c906108c 289
a14ed312 290extern DOUBLEST value_as_double (value_ptr val);
c906108c 291
a14ed312 292extern CORE_ADDR value_as_pointer (value_ptr val);
c906108c 293
a14ed312 294extern LONGEST unpack_long (struct type *type, char *valaddr);
c906108c 295
a14ed312 296extern DOUBLEST unpack_double (struct type *type, char *valaddr, int *invp);
c906108c 297
a14ed312 298extern CORE_ADDR unpack_pointer (struct type *type, char *valaddr);
c906108c 299
a14ed312
KB
300extern LONGEST unpack_field_as_long (struct type *type, char *valaddr,
301 int fieldno);
c906108c 302
a14ed312 303extern value_ptr value_from_longest (struct type *type, LONGEST num);
c906108c 304
4478b372
JB
305extern value_ptr value_from_pointer (struct type *type, CORE_ADDR addr);
306
a14ed312 307extern value_ptr value_from_double (struct type *type, DOUBLEST num);
c906108c 308
a14ed312 309extern value_ptr value_from_string (char *string);
0f71a2f6 310
a14ed312
KB
311extern value_ptr value_at (struct type *type, CORE_ADDR addr,
312 asection * sect);
c906108c 313
a14ed312
KB
314extern value_ptr value_at_lazy (struct type *type, CORE_ADDR addr,
315 asection * sect);
c906108c 316
a14ed312
KB
317extern value_ptr value_from_register (struct type *type, int regnum,
318 struct frame_info *frame);
c906108c 319
a14ed312 320extern value_ptr value_of_variable (struct symbol *var, struct block *b);
c906108c 321
a14ed312 322extern value_ptr value_of_register (int regnum);
c906108c 323
a14ed312 324extern int symbol_read_needs_frame (struct symbol *);
c906108c 325
a14ed312
KB
326extern value_ptr read_var_value (struct symbol *var,
327 struct frame_info *frame);
c906108c 328
a14ed312
KB
329extern value_ptr locate_var_value (struct symbol *var,
330 struct frame_info *frame);
c906108c 331
a14ed312 332extern value_ptr allocate_value (struct type *type);
c906108c 333
a14ed312 334extern value_ptr allocate_repeat_value (struct type *type, int count);
c906108c 335
2b127877
DB
336extern value_ptr value_change_enclosing_type (value_ptr val, struct type *new_type);
337
a14ed312 338extern value_ptr value_mark (void);
c906108c 339
a14ed312 340extern void value_free_to_mark (value_ptr mark);
c906108c 341
a14ed312
KB
342extern value_ptr value_string (char *ptr, int len);
343extern value_ptr value_bitstring (char *ptr, int len);
c906108c 344
a14ed312
KB
345extern value_ptr value_array (int lowbound, int highbound,
346 value_ptr * elemvec);
c906108c 347
a14ed312 348extern value_ptr value_concat (value_ptr arg1, value_ptr arg2);
c906108c 349
a14ed312
KB
350extern value_ptr value_binop (value_ptr arg1, value_ptr arg2,
351 enum exp_opcode op);
c906108c 352
a14ed312 353extern value_ptr value_add (value_ptr arg1, value_ptr arg2);
c906108c 354
a14ed312 355extern value_ptr value_sub (value_ptr arg1, value_ptr arg2);
c906108c 356
a14ed312 357extern value_ptr value_coerce_array (value_ptr arg1);
c906108c 358
a14ed312 359extern value_ptr value_coerce_function (value_ptr arg1);
c906108c 360
a14ed312 361extern value_ptr value_ind (value_ptr arg1);
c906108c 362
a14ed312 363extern value_ptr value_addr (value_ptr arg1);
c906108c 364
a14ed312 365extern value_ptr value_assign (value_ptr toval, value_ptr fromval);
c906108c 366
a14ed312 367extern value_ptr value_neg (value_ptr arg1);
c906108c 368
a14ed312 369extern value_ptr value_complement (value_ptr arg1);
c906108c 370
a14ed312
KB
371extern value_ptr value_struct_elt (value_ptr * argp, value_ptr * args,
372 char *name,
373 int *static_memfuncp, char *err);
c906108c 374
a14ed312
KB
375extern value_ptr value_struct_elt_for_reference (struct type *domain,
376 int offset,
377 struct type *curtype,
378 char *name,
379 struct type *intype);
c906108c 380
a14ed312 381extern value_ptr value_static_field (struct type *type, int fieldno);
c906108c 382
a14ed312
KB
383extern struct fn_field *value_find_oload_method_list (value_ptr *, char *,
384 int, int *, int *,
385 struct type **, int *);
7a292a7a 386
a14ed312
KB
387extern int find_overload_match (struct type **arg_types, int nargs,
388 char *name, int method, int lax,
389 value_ptr obj, struct symbol *fsym,
390 value_ptr * valp, struct symbol **symp,
391 int *staticp);
c906108c 392
a14ed312 393extern value_ptr value_field (value_ptr arg1, int fieldno);
c906108c 394
a14ed312
KB
395extern value_ptr value_primitive_field (value_ptr arg1, int offset,
396 int fieldno, struct type *arg_type);
c906108c 397
c906108c 398
a14ed312 399extern struct type *value_rtti_target_type (value_ptr, int *, int *, int *);
c906108c 400
a14ed312 401extern value_ptr value_full_object (value_ptr, struct type *, int, int, int);
c906108c 402
a14ed312 403extern value_ptr value_cast (struct type *type, value_ptr arg2);
c906108c 404
a14ed312 405extern value_ptr value_zero (struct type *type, enum lval_type lv);
c906108c 406
a14ed312 407extern value_ptr value_repeat (value_ptr arg1, int count);
c906108c 408
a14ed312 409extern value_ptr value_subscript (value_ptr array, value_ptr idx);
c906108c 410
a14ed312 411extern value_ptr value_from_vtable_info (value_ptr arg, struct type *type);
c906108c 412
a14ed312
KB
413extern value_ptr value_being_returned (struct type *valtype,
414 char *retbuf, int struct_return);
c906108c 415
a14ed312 416extern value_ptr value_in (value_ptr element, value_ptr set);
c906108c 417
a14ed312 418extern int value_bit_index (struct type *type, char *addr, int index);
c906108c 419
a14ed312
KB
420extern int using_struct_return (value_ptr function, CORE_ADDR funcaddr,
421 struct type *value_type, int gcc_p);
c906108c 422
a14ed312 423extern void set_return_value (value_ptr val);
c906108c 424
a14ed312 425extern value_ptr evaluate_expression (struct expression *exp);
c906108c 426
a14ed312 427extern value_ptr evaluate_type (struct expression *exp);
c906108c 428
a14ed312
KB
429extern value_ptr evaluate_subexp_with_coercion (struct expression *,
430 int *, enum noside);
c906108c 431
a14ed312 432extern value_ptr parse_and_eval (char *exp);
c906108c 433
a14ed312 434extern value_ptr parse_to_comma_and_eval (char **expp);
c906108c 435
a14ed312 436extern struct type *parse_and_eval_type (char *p, int length);
c906108c 437
a14ed312 438extern CORE_ADDR parse_and_eval_address (char *exp);
c906108c 439
a14ed312 440extern CORE_ADDR parse_and_eval_address_1 (char **expptr);
c906108c 441
bb518678
DT
442extern LONGEST parse_and_eval_long (char *exp);
443
a14ed312 444extern value_ptr access_value_history (int num);
c906108c 445
a14ed312 446extern value_ptr value_of_internalvar (struct internalvar *var);
c906108c 447
a14ed312 448extern void set_internalvar (struct internalvar *var, value_ptr val);
c906108c 449
a14ed312
KB
450extern void set_internalvar_component (struct internalvar *var,
451 int offset,
452 int bitpos, int bitsize,
453 value_ptr newvalue);
c906108c 454
a14ed312 455extern struct internalvar *lookup_internalvar (char *name);
c906108c 456
a14ed312 457extern int value_equal (value_ptr arg1, value_ptr arg2);
c906108c 458
a14ed312 459extern int value_less (value_ptr arg1, value_ptr arg2);
c906108c 460
a14ed312 461extern int value_logical_not (value_ptr arg1);
c906108c
SS
462
463/* C++ */
464
a14ed312 465extern value_ptr value_of_this (int complain);
c906108c 466
a14ed312
KB
467extern value_ptr value_x_binop (value_ptr arg1, value_ptr arg2,
468 enum exp_opcode op,
469 enum exp_opcode otherop, enum noside noside);
c906108c 470
a14ed312
KB
471extern value_ptr value_x_unop (value_ptr arg1, enum exp_opcode op,
472 enum noside noside);
c906108c 473
a14ed312
KB
474extern value_ptr value_fn_field (value_ptr * arg1p, struct fn_field *f,
475 int j, struct type *type, int offset);
c906108c 476
a14ed312
KB
477extern int binop_user_defined_p (enum exp_opcode op,
478 value_ptr arg1, value_ptr arg2);
c906108c 479
a14ed312 480extern int unop_user_defined_p (enum exp_opcode op, value_ptr arg1);
c906108c 481
a14ed312 482extern int destructor_name_p (const char *name, const struct type *type);
c906108c 483
338d7c5c 484#define value_free(val) xfree (val)
c906108c 485
a14ed312 486extern void free_all_values (void);
c906108c 487
a14ed312 488extern void release_value (value_ptr val);
c906108c 489
a14ed312 490extern int record_latest_value (value_ptr val);
c906108c 491
c906108c 492extern void
a14ed312 493modify_field (char *addr, LONGEST fieldval, int bitpos, int bitsize);
c906108c 494
d9fcf2fb
JM
495extern void type_print (struct type * type, char *varstring,
496 struct ui_file * stream, int show);
c906108c 497
a14ed312
KB
498extern char *baseclass_addr (struct type *type, int index,
499 char *valaddr, value_ptr * valuep, int *errp);
c906108c 500
d9fcf2fb
JM
501extern void print_longest (struct ui_file * stream, int format,
502 int use_local, LONGEST val);
c906108c 503
d9fcf2fb
JM
504extern void print_floating (char *valaddr, struct type * type,
505 struct ui_file * stream);
c906108c 506
d9fcf2fb
JM
507extern int value_print (value_ptr val, struct ui_file *stream, int format,
508 enum val_prettyprint pretty);
c906108c 509
d9fcf2fb
JM
510extern void value_print_array_elements (value_ptr val,
511 struct ui_file *stream,
512 int format,
513 enum val_prettyprint pretty);
c906108c 514
a14ed312 515extern value_ptr value_release_to_mark (value_ptr mark);
c906108c 516
d9fcf2fb
JM
517extern int val_print (struct type * type, char *valaddr,
518 int embedded_offset, CORE_ADDR address,
519 struct ui_file * stream, int format,
520 int deref_ref, int recurse,
521 enum val_prettyprint pretty);
c906108c 522
d9fcf2fb 523extern int val_print_string (CORE_ADDR addr, int len, int width, struct ui_file *stream);
c906108c 524
d9fcf2fb
JM
525extern void print_variable_value (struct symbol * var,
526 struct frame_info * frame,
527 struct ui_file *stream);
c906108c 528
a14ed312 529extern int check_field (value_ptr, const char *);
c906108c 530
a5238fbc 531extern void typedef_print (struct type * type, struct symbol * news,
d9fcf2fb 532 struct ui_file * stream);
c906108c 533
a14ed312 534extern char *internalvar_name (struct internalvar *var);
c906108c 535
a14ed312 536extern void clear_value_history (void);
c906108c 537
a14ed312 538extern void clear_internalvars (void);
c906108c
SS
539
540/* From values.c */
541
a14ed312 542extern value_ptr value_copy (value_ptr);
c906108c 543
a14ed312 544extern int baseclass_offset (struct type *, int, char *, CORE_ADDR);
c906108c
SS
545
546/* From valops.c */
547
a14ed312 548extern value_ptr varying_to_slice (value_ptr);
c906108c 549
a14ed312 550extern value_ptr value_slice (value_ptr, int, int);
c906108c 551
a14ed312 552extern value_ptr call_function_by_hand (value_ptr, int, value_ptr *);
c906108c 553
b9a8e3bf
JB
554extern int default_coerce_float_to_double (struct type *, struct type *);
555
556extern int standard_coerce_float_to_double (struct type *, struct type *);
557
a14ed312 558extern value_ptr value_literal_complex (value_ptr, value_ptr, struct type *);
c906108c 559
a14ed312
KB
560extern void find_rt_vbase_offset (struct type *, struct type *, char *, int,
561 int *, int *);
c906108c 562
a14ed312 563extern value_ptr find_function_in_inferior (char *);
c906108c 564
a14ed312 565extern value_ptr value_allocate_space_in_inferior (int);
c906108c 566
a14ed312
KB
567extern CORE_ADDR default_push_arguments (int nargs, value_ptr * args,
568 CORE_ADDR sp,
569 int struct_return,
570 CORE_ADDR struct_addr);
392a587b 571
c5aa993b 572#endif /* !defined (VALUE_H) */
This page took 0.160451 seconds and 4 git commands to generate.