diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1991-04-26 23:05:17 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1991-04-26 23:05:17 +0000 |
commit | ea9cdf62c64a3d65a71b7f557f4ebd311ab0858b (patch) | |
tree | 50a924377f40b996805d3640504085c3918a5539 /gdb | |
parent | b99f250bf9b29c4a09c75480522140e219b26537 (diff) | |
download | gdb-ea9cdf62c64a3d65a71b7f557f4ebd311ab0858b.zip gdb-ea9cdf62c64a3d65a71b7f557f4ebd311ab0858b.tar.gz gdb-ea9cdf62c64a3d65a71b7f557f4ebd311ab0858b.tar.bz2 |
* symtab.c, symtab.h: Have a builtin_type_{,unsigned_}long_long
regardless of LONG_LONG.
symtab.c, symtab.h (allocate_stub_method): New function.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/symtab.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h index 9e36c65..2632812 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -760,9 +760,25 @@ int current_source_line; /* The virtual function table is now an array of structures which have the form { int16 offset, delta; void *pfn; }. - Gee, can we have more documentation than that? FIXME. -- gnu */ + In normal virtual function tables, OFFSET is unused. + DELTA is the amount which is added to the apparent object's base + address in order to point to the actual object to which the + virtual function should be applied. + PFN is a pointer to the virtual function. */ #define VTBL_FNADDR_OFFSET 2 + +/* Macro that yields non-zero value iff NAME is the prefix + for C++ operator names. If you leave out the parenthesis + here you will lose! + + Currently 'o' 'p' CPLUS_MARKER is used for both the symbol in the + symbol-file and the names in gdb's symbol table. */ +#define OPNAME_PREFIX_P(NAME) ((NAME)[0] == 'o' && (NAME)[1] == 'p' \ + && (NAME)[2] == CPLUS_MARKER) + +#define VTBL_PREFIX_P(NAME) ((NAME)[3] == CPLUS_MARKER \ + && !strncmp ((NAME), "_vt", 3)) /* Functions that work on the objects described above */ @@ -799,8 +815,10 @@ extern int contained_in(); /* C++ stuff. */ extern struct type *lookup_reference_type (); extern struct type *lookup_member_type (); +extern struct type *lookup_method_type (); extern struct type *lookup_class (); extern void smash_to_method_type (); +extern struct type *allocate_stub_method (); /* end of C++ stuff. */ extern void free_all_symtabs (); @@ -823,10 +841,11 @@ extern struct type *builtin_type_double; read-in. */ extern struct type *builtin_type_error; -#ifdef LONG_LONG extern struct type *builtin_type_long_long; extern struct type *builtin_type_unsigned_long_long; +/* LONG_LONG is defined if the host has "long long". */ +#ifdef LONG_LONG #define BUILTIN_TYPE_LONGEST builtin_type_long_long #define BUILTIN_TYPE_UNSIGNED_LONGEST builtin_type_unsigned_long_long /* This should not be a typedef, because "unsigned LONGEST" needs |