* command.h, defs.h, eval.h, expression.h, remote-sa.sparc.c,
sparc-tdep.c, symtab.h, target.h, value.h, vx-share/ptrace.h, vx-share/xdr_ptrace.h, vx-share/xdr_rdb.h: ANSIfy enums.
This commit is contained in:
parent
ce947b9d8d
commit
0a5d35ed30
|
@ -1,3 +1,9 @@
|
|||
Wed Dec 18 17:09:06 1991 Stu Grossman (grossman at cygnus.com)
|
||||
|
||||
* command.h, defs.h, eval.h, expression.h, remote-sa.sparc.c,
|
||||
sparc-tdep.c, symtab.h, target.h, value.h, vx-share/ptrace.h,
|
||||
vx-share/xdr_ptrace.h, vx-share/xdr_rdb.h: ANSIfy enums.
|
||||
|
||||
Mon Dec 16 12:31:46 1991 Fred Fish (fnf at cygnus.com)
|
||||
|
||||
* config/mt-amix, config/mt-i386v4: Add solib.o to TDEPFILES
|
||||
|
|
186
gdb/defs.h
186
gdb/defs.h
|
@ -30,59 +30,6 @@ typedef unsigned int CORE_ADDR;
|
|||
the program's identifiers (such as $this and $$vptr). */
|
||||
#define CPLUS_MARKER '$' /* May be overridden to '.' for SysV */
|
||||
|
||||
/*
|
||||
* Allow things in gdb to be declared "const". If compiling ANSI, it
|
||||
* just works. If compiling with gcc but non-ansi, redefine to __const__.
|
||||
* If non-ansi, non-gcc, then eliminate "const" entirely, making those
|
||||
* objects be read-write rather than read-only.
|
||||
*/
|
||||
#ifndef const
|
||||
#ifndef __STDC__
|
||||
# ifdef __GNUC__
|
||||
# define const __const__
|
||||
# else
|
||||
# define const /*nothing*/
|
||||
# endif /* GNUC */
|
||||
#endif /* STDC */
|
||||
#endif /* const */
|
||||
|
||||
#ifndef volatile
|
||||
#ifndef __STDC__
|
||||
# ifdef __GNUC__
|
||||
# define volatile __volatile__
|
||||
# else
|
||||
# define volatile /*nothing*/
|
||||
# endif /* GNUC */
|
||||
#endif /* STDC */
|
||||
#endif /* volatile */
|
||||
|
||||
extern char *savestring ();
|
||||
extern char *strsave ();
|
||||
extern char *concat ();
|
||||
#ifdef __STDC__
|
||||
extern void *xmalloc (), *xrealloc ();
|
||||
#else
|
||||
extern char *xmalloc (), *xrealloc ();
|
||||
#endif
|
||||
extern void free ();
|
||||
extern int parse_escape ();
|
||||
extern char *reg_names[];
|
||||
/* Indicate that these routines do not return to the caller. */
|
||||
extern volatile void error(), fatal();
|
||||
extern void warning_setup(), warning();
|
||||
|
||||
/* Various possibilities for alloca. */
|
||||
#ifndef alloca
|
||||
# ifdef __GNUC__
|
||||
# define alloca __builtin_alloca
|
||||
# else
|
||||
# ifdef sparc
|
||||
# include <alloca.h>
|
||||
# endif
|
||||
extern char *alloca ();
|
||||
# endif
|
||||
#endif
|
||||
|
||||
extern int errno; /* System call error return status */
|
||||
|
||||
extern int quit_flag;
|
||||
|
@ -186,6 +133,67 @@ extern unsigned output_radix;
|
|||
/* Baud rate specified for communication with serial target systems. */
|
||||
char *baud_rate;
|
||||
|
||||
/* Languages represented in the symbol table and elsewhere. */
|
||||
|
||||
enum language
|
||||
{
|
||||
language_unknown, /* Language not known */
|
||||
language_auto, /* Placeholder for automatic setting */
|
||||
language_c, /* C */
|
||||
language_cplus, /* C++ */
|
||||
language_m2 /* Modula-2 */
|
||||
};
|
||||
|
||||
/* Return a format string for printf that will print a number in the local
|
||||
(language-specific) hexadecimal format. Result is static and is
|
||||
overwritten by the next call. local_hex_format_custom takes printf
|
||||
options like "08" or "l" (to produce e.g. %08x or %lx). */
|
||||
|
||||
#define local_hex_format() (current_language->la_hex_format)
|
||||
char *local_hex_format_custom(); /* language.c */
|
||||
|
||||
/* Return a string that contains a number formatted in the local
|
||||
(language-specific) hexadecimal format. Result is static and is
|
||||
overwritten by the next call. local_hex_string_custom takes printf
|
||||
options like "08" or "l". */
|
||||
|
||||
char *local_hex_string (); /* language.c */
|
||||
char *local_hex_string_custom (); /* language.c */
|
||||
|
||||
/* Host machine definition. This will be a symlink to one of the
|
||||
xm-*.h files, built by the `configure' script. */
|
||||
|
||||
#include "xm.h"
|
||||
|
||||
/*
|
||||
* Allow things in gdb to be declared "const". If compiling ANSI, it
|
||||
* just works. If compiling with gcc but non-ansi, redefine to __const__.
|
||||
* If non-ansi, non-gcc, then eliminate "const" entirely, making those
|
||||
* objects be read-write rather than read-only.
|
||||
*/
|
||||
|
||||
#ifndef const
|
||||
#ifndef __STDC__
|
||||
# ifdef __GNUC__
|
||||
# define const __const__
|
||||
# else
|
||||
# define const /*nothing*/
|
||||
# endif /* GNUC */
|
||||
#endif /* STDC */
|
||||
#endif /* const */
|
||||
|
||||
#ifndef volatile
|
||||
#ifndef __STDC__
|
||||
# ifdef __GNUC__
|
||||
# define volatile __volatile__
|
||||
# else
|
||||
# define volatile /*nothing*/
|
||||
# endif /* GNUC */
|
||||
#endif /* STDC */
|
||||
#endif /* volatile */
|
||||
|
||||
/* Defaults for system-wide constants (if not defined by xm.h, we fake it). */
|
||||
|
||||
#if !defined (UINT_MAX)
|
||||
#define UINT_MAX 0xffffffff
|
||||
#endif
|
||||
|
@ -268,34 +276,46 @@ char *baud_rate;
|
|||
#endif /* No LONG_LONG. */
|
||||
#endif /* No longest_to_int. */
|
||||
|
||||
/* Languages represented in the symbol table and elsewhere. */
|
||||
/* Assorted functions we can declare, now that const and volatile are
|
||||
defined. */
|
||||
extern char *savestring ();
|
||||
extern char *strsave ();
|
||||
extern char *concat ();
|
||||
#ifdef __STDC__
|
||||
extern void *xmalloc (), *xrealloc ();
|
||||
#else
|
||||
extern char *xmalloc (), *xrealloc ();
|
||||
#endif
|
||||
extern void free ();
|
||||
extern int parse_escape ();
|
||||
extern char *reg_names[];
|
||||
/* Indicate that these routines do not return to the caller. */
|
||||
extern volatile void error(), fatal();
|
||||
extern void warning_setup(), warning();
|
||||
|
||||
enum language
|
||||
{
|
||||
language_unknown, /* Language not known */
|
||||
language_auto, /* Placeholder for automatic setting */
|
||||
language_c, /* C */
|
||||
language_cplus, /* C++ */
|
||||
language_m2, /* Modula-2 */
|
||||
};
|
||||
/* Various possibilities for alloca. */
|
||||
#ifndef alloca
|
||||
# ifdef __GNUC__
|
||||
# define alloca __builtin_alloca
|
||||
# else
|
||||
# ifdef sparc
|
||||
# include <alloca.h>
|
||||
# endif
|
||||
extern char *alloca ();
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Return a format string for printf that will print a number in the local
|
||||
(language-specific) hexadecimal format. Result is static and is
|
||||
overwritten by the next call. local_hex_format_custom takes printf
|
||||
options like "08" or "l" (to produce e.g. %08x or %lx). */
|
||||
/* TARGET_BYTE_ORDER and HOST_BYTE_ORDER should be defined to one of these. */
|
||||
|
||||
#define local_hex_format() (current_language->la_hex_format)
|
||||
char *local_hex_format_custom(); /* language.c */
|
||||
#if !defined (BIG_ENDIAN)
|
||||
#define BIG_ENDIAN 4321
|
||||
#endif
|
||||
|
||||
/* Return a string that contains a number formatted in the local
|
||||
(language-specific) hexadecimal format. Result is static and is
|
||||
overwritten by the next call. local_hex_string_custom takes printf
|
||||
options like "08" or "l". */
|
||||
#if !defined (LITTLE_ENDIAN)
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#endif
|
||||
|
||||
char *local_hex_string (); /* language.c */
|
||||
char *local_hex_string_custom (); /* language.c */
|
||||
|
||||
/* System-dependent parameters for GDB.
|
||||
/* Target-system-dependent parameters for GDB.
|
||||
|
||||
The standard thing is to include defs.h. However, files that are
|
||||
specific to a particular target can define TM_FILE_OVERRIDE before
|
||||
|
@ -308,20 +328,6 @@ char *local_hex_string_custom (); /* language.c */
|
|||
#include "tm.h"
|
||||
#endif
|
||||
|
||||
/* Host machine definition. This will be a symlink to one of the
|
||||
xm-*.h files, built by the `configure' script. */
|
||||
|
||||
#include "xm.h"
|
||||
|
||||
/* TARGET_BYTE_ORDER and HOST_BYTE_ORDER should be defined to one of these. */
|
||||
#if !defined (BIG_ENDIAN)
|
||||
#define BIG_ENDIAN 4321
|
||||
#endif
|
||||
|
||||
#if !defined (LITTLE_ENDIAN)
|
||||
#define LITTLE_ENDIAN 1234
|
||||
#endif
|
||||
|
||||
/* The bit byte-order has to do just with numbering of bits in
|
||||
debugging symbols and such. Conceptually, it's quite separate
|
||||
from byte/word byte order. */
|
||||
|
|
29
gdb/eval.c
29
gdb/eval.c
|
@ -1,5 +1,5 @@
|
|||
/* Evaluate expressions for GDB.
|
||||
Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
|
||||
Copyright (C) 1986, 1987, 1989, 1991 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
|
@ -19,7 +19,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
|
||||
#include <stdio.h>
|
||||
#include "defs.h"
|
||||
#include "param.h"
|
||||
#include "symtab.h"
|
||||
#include "value.h"
|
||||
#include "expression.h"
|
||||
|
@ -96,7 +95,7 @@ parse_to_comma_and_eval (expp)
|
|||
}
|
||||
|
||||
/* Evaluate an expression in internal prefix form
|
||||
such as is constructed by expread.y.
|
||||
such as is constructed by parse.y.
|
||||
|
||||
See expression.h for info on the format of an expression. */
|
||||
|
||||
|
@ -109,7 +108,7 @@ static value evaluate_subexp_with_coercion ();
|
|||
enum noside
|
||||
{ EVAL_NORMAL,
|
||||
EVAL_SKIP, /* Only effect is to increment pos. */
|
||||
EVAL_AVOID_SIDE_EFFECTS, /* Don't modify any variables or
|
||||
EVAL_AVOID_SIDE_EFFECTS /* Don't modify any variables or
|
||||
call any functions. The value
|
||||
returned will have the correct
|
||||
type, and will have an
|
||||
|
@ -966,7 +965,7 @@ evaluate_subexp_for_address (exp, pos, noside)
|
|||
{
|
||||
value x = evaluate_subexp (NULL_TYPE, exp, pos, noside);
|
||||
if (VALUE_LVAL (x) == lval_memory)
|
||||
return value_zero (TYPE_POINTER_TYPE (VALUE_TYPE (x)),
|
||||
return value_zero (lookup_pointer_type (VALUE_TYPE (x)),
|
||||
not_lval);
|
||||
else
|
||||
error ("Attempt to take address of non-lval");
|
||||
|
@ -1052,3 +1051,23 @@ evaluate_subexp_for_sizeof (exp, pos)
|
|||
(LONGEST) TYPE_LENGTH (VALUE_TYPE (val)));
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse a type expression in the string [P..P+LENGTH). */
|
||||
|
||||
struct type *
|
||||
parse_and_eval_type (p, length)
|
||||
char *p;
|
||||
int length;
|
||||
{
|
||||
char *tmp = (char *)alloca (length + 4);
|
||||
struct expression *expr;
|
||||
tmp[0] = '(';
|
||||
bcopy (p, tmp+1, length);
|
||||
tmp[length+1] = ')';
|
||||
tmp[length+2] = '0';
|
||||
tmp[length+3] = '\0';
|
||||
expr = parse_expression (tmp);
|
||||
if (expr->elts[0].opcode != UNOP_CAST)
|
||||
error ("Internal error in eval_type.");
|
||||
return expr->elts[1].type;
|
||||
}
|
||||
|
|
|
@ -844,7 +844,7 @@ remote_single_step ()
|
|||
CORE_ADDR next_pc, npc4, target, pc;
|
||||
typedef enum
|
||||
{
|
||||
Error, not_branch, bicc, bicca, ba, baa, ticc, ta,
|
||||
Error, not_branch, bicc, bicca, ba, baa, ticc, ta
|
||||
} branch_type;
|
||||
branch_type br, isannulled();
|
||||
|
||||
|
|
28
gdb/symtab.h
28
gdb/symtab.h
|
@ -103,7 +103,7 @@ enum type_code
|
|||
|
||||
/* Modula-2 */
|
||||
TYPE_CODE_CHAR, /* *real* character type */
|
||||
TYPE_CODE_BOOL, /* Builtin Modula-2 BOOLEAN */
|
||||
TYPE_CODE_BOOL /* Builtin Modula-2 BOOLEAN */
|
||||
};
|
||||
|
||||
/* This appears in a type's flags word for an unsigned integer type. */
|
||||
|
@ -197,7 +197,9 @@ struct type
|
|||
/* Slot to point to additional language-specific fields of this type. */
|
||||
union type_specific
|
||||
{
|
||||
/* ARG_TYPES is for TYPE_CODE_METHOD and TYPE_CODE_FUNCTION. */
|
||||
struct type **arg_types;
|
||||
/* CPLUS_STUFF is for TYPE_CODE_STRUCT. */
|
||||
struct cplus_struct_type *cplus_stuff;
|
||||
} type_specific;
|
||||
};
|
||||
|
@ -244,15 +246,17 @@ struct cplus_struct_type
|
|||
struct type *fcontext;
|
||||
unsigned int is_const : 1;
|
||||
unsigned int is_volatile : 1;
|
||||
unsigned int is_private : 1;
|
||||
unsigned int is_protected : 1;
|
||||
unsigned int is_stub : 1;
|
||||
unsigned int dummy : 3;
|
||||
|
||||
/* Index into that baseclass's virtual function table,
|
||||
minus 2; else if static: VOFFSET_STATIC; else: 0. */
|
||||
unsigned voffset : 30;
|
||||
unsigned voffset : 24;
|
||||
# define VOFFSET_STATIC 1
|
||||
} *fn_fields;
|
||||
|
||||
B_TYPE *private_fn_field_bits;
|
||||
B_TYPE *protected_fn_field_bits;
|
||||
|
||||
} *fn_fieldlists;
|
||||
|
||||
unsigned char via_protected;
|
||||
|
@ -358,7 +362,7 @@ struct block
|
|||
|
||||
enum namespace
|
||||
{
|
||||
UNDEF_NAMESPACE, VAR_NAMESPACE, STRUCT_NAMESPACE, LABEL_NAMESPACE,
|
||||
UNDEF_NAMESPACE, VAR_NAMESPACE, STRUCT_NAMESPACE, LABEL_NAMESPACE
|
||||
};
|
||||
|
||||
/* An address-class says where to find the value of a symbol. */
|
||||
|
@ -381,7 +385,7 @@ enum address_class
|
|||
`struct block'. Function names have this class. */
|
||||
LOC_CONST_BYTES, /* Value is a constant byte-sequence pointed to by
|
||||
SYMBOL_VALUE_ADDRESS, in target byte order. */
|
||||
LOC_LOCAL_ARG, /* Value is arg at spec'd offset in stack frame.
|
||||
LOC_LOCAL_ARG /* Value is arg at spec'd offset in stack frame.
|
||||
Differs from LOC_LOCAL in that symbol is an
|
||||
argument; differs from LOC_ARG in that we find it
|
||||
in the frame (FRAME_LOCALS_ADDRESS), not in the
|
||||
|
@ -730,13 +734,9 @@ B_TST(TYPE_CPLUS_SPECIFIC(thistype)->protected_field_bits, (n))
|
|||
#define TYPE_FN_FIELD_STATIC_P(thisfn, n) ((thisfn)[n].voffset == VOFFSET_STATIC)
|
||||
#define TYPE_FN_FIELD_VOFFSET(thisfn, n) ((thisfn)[n].voffset-2)
|
||||
#define TYPE_FN_FIELD_FCONTEXT(thisfn, n) ((thisfn)[n].fcontext)
|
||||
|
||||
#define TYPE_FN_PRIVATE_BITS(thisfn) (thisfn).private_fn_field_bits
|
||||
#define TYPE_FN_PROTECTED_BITS(thisfn) (thisfn).protected_fn_field_bits
|
||||
#define SET_TYPE_FN_PRIVATE(thisfn, n) B_SET ((thisfn).private_fn_field_bits, n)
|
||||
#define SET_TYPE_FN_PROTECTED(thisfn, n) B_SET ((thisfn).protected_fn_field_bits, n)
|
||||
#define TYPE_FN_PRIVATE(thisfn, n) B_TST ((thisfn).private_fn_field_bits, n)
|
||||
#define TYPE_FN_PROTECTED(thisfn, n) B_TST ((thisfn).protected_fn_field_bits, n)
|
||||
#define TYPE_FN_FIELD_STUB(thisfn, n) ((thisfn)[n].is_stub)
|
||||
#define TYPE_FN_FIELD_PRIVATE(thisfn, n) ((thisfn)[n].is_private)
|
||||
#define TYPE_FN_FIELD_PROTECTED(thisfn, n) ((thisfn)[n].is_protected)
|
||||
|
||||
/* The virtual function table is now an array of structures
|
||||
which have the form { int16 offset, delta; void *pfn; }.
|
||||
|
|
Loading…
Reference in New Issue