5e54886116
* ch-exp.c: New file. Use recursive-descent. Recognize labelled array tuples and powerset ranges. * Makefile.in: Update for no longer using yacc for ch-exp. * c-lang.c: Make various functions non-static. * c-lang.h: Add bunches of prototypes. * cp-valprint.c (cp_print_value_fields): Also take address. (cp_print_value): Likewise. Use baselcass_offset. * stabsread.c (current_symbol): New static variable. (type_synonym_name): Remove. (read_type): If copying, make copy be a TYPE_CODE_TYPEDEF. (read_array_type): Don't need to handle undefined element type here. (cleanup_undefined_types): Ditto. (read_range_type): Look for Chill ranges. * valops.c (value_assign): Fix case lval_internalvar - don't try to assign into old value (which might be too small!). (value_coerce_array): No longer need special VALUE_REPEATED handling. (value_arg_coerce): Cleaner array->pointer decay mechanism. (search_struct_field): Use baseclass_offset rather than baseclass_addr. (value_slice): Use get_discrete_bounds. * value.h (COERCE_VARYING_ARRAY): Take type argumnt as well. * values.c (baseclass_offset): Change parameter interface. (baseclass_addr): Removed. * c-typeprint.c, c-valprint.c, ch-valprint.c, values.c, valops.c: Add check_typedef/CHECK_TYPEDEF as needed.
87 lines
2.6 KiB
C
87 lines
2.6 KiB
C
/* C language support definitions for GDB, the GNU debugger.
|
|
Copyright 1992 Free Software Foundation, Inc.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
|
|
#ifdef __STDC__ /* Forward decls for prototypes */
|
|
struct value;
|
|
#endif
|
|
|
|
extern int
|
|
c_parse PARAMS ((void)); /* Defined in c-exp.y */
|
|
|
|
extern void
|
|
c_error PARAMS ((char *)); /* Defined in c-exp.y */
|
|
|
|
extern void /* Defined in c-typeprint.c */
|
|
c_print_type PARAMS ((struct type *, char *, GDB_FILE *, int, int));
|
|
|
|
extern int
|
|
c_val_print PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *, int, int,
|
|
int, enum val_prettyprint));
|
|
|
|
extern int
|
|
c_value_print PARAMS ((struct value *, GDB_FILE *, int, enum val_prettyprint));
|
|
|
|
/* These are in c-lang.c: */
|
|
|
|
extern void c_printchar PARAMS ((int, GDB_FILE*));
|
|
|
|
extern void c_printstr PARAMS ((GDB_FILE *, char *, unsigned int, int));
|
|
|
|
extern struct type * c_create_fundamental_type PARAMS ((struct objfile*, int));
|
|
|
|
extern const struct op_print c_op_print_tab[];
|
|
|
|
extern struct type ** const (c_builtin_types[]);
|
|
|
|
/* These are in c-typeprint.c: */
|
|
|
|
extern void
|
|
c_type_print_base PARAMS ((struct type *, GDB_FILE *, int, int));
|
|
|
|
extern void
|
|
c_type_print_varspec_prefix PARAMS ((struct type *, GDB_FILE *, int, int));
|
|
|
|
extern void
|
|
cp_type_print_method_args PARAMS ((struct type **, char *, char *, int,
|
|
GDB_FILE *));
|
|
/* These are in cp-valprint.c */
|
|
|
|
extern void
|
|
cp_type_print_method_args PARAMS ((struct type **, char *, char *, int,
|
|
GDB_FILE *));
|
|
|
|
extern int vtblprint; /* Controls printing of vtbl's */
|
|
|
|
extern void
|
|
cp_print_class_member PARAMS ((char *, struct type *, GDB_FILE *, char *));
|
|
|
|
extern void
|
|
cp_print_class_method PARAMS ((char *, struct type *, GDB_FILE *));
|
|
|
|
extern void
|
|
cp_print_value_fields PARAMS ((struct type *, char *, CORE_ADDR,
|
|
GDB_FILE *, int, int, enum val_prettyprint,
|
|
struct type**, int));
|
|
|
|
extern int
|
|
cp_is_vtbl_ptr_type PARAMS ((struct type *));
|
|
|
|
extern int
|
|
cp_is_vtbl_member PARAMS ((struct type *));
|