diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1998-06-28 18:36:50 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1998-06-28 18:36:50 +0000 |
commit | 655a27b0993a240c5ebcefee95b4be1f95b77f28 (patch) | |
tree | 4059b451785c8490290f199161858dc1f65ca1f8 /gdb/stabsread.c | |
parent | f35ea21826aadb993ad6deb44f781cfbf5f90bff (diff) | |
download | gdb-655a27b0993a240c5ebcefee95b4be1f95b77f28.zip gdb-655a27b0993a240c5ebcefee95b4be1f95b77f28.tar.gz gdb-655a27b0993a240c5ebcefee95b4be1f95b77f28.tar.bz2 |
Improve support for SunPro F77.
* dbxread.c (end_psymtab, process_one_symbol): Handle minimal
symbols with trailing underscore names.
* minsyms.c (find_stab_function_addr): Ditto.
* dbxread.c (process_one_symbol): Ignore N_ALIAS for now.
* partial-stab.h (case N_ALIAS): Ditto.
* stabsread.c (read_sun_builtin_type): Handle boolean types.
Diffstat (limited to 'gdb/stabsread.c')
-rw-r--r-- | gdb/stabsread.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gdb/stabsread.c b/gdb/stabsread.c index be562e5..aa99708 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -4282,8 +4282,9 @@ read_enum_type (pp, type, objfile) /* Sun's ACC uses a somewhat saner method for specifying the builtin typedefs in every file (for int, long, etc): - type = b <signed> <width>; <offset>; <nbits> - signed = u or s. Possible c in addition to u or s (for char?). + type = b <signed> <width> <format type>; <offset>; <nbits> + signed = u or s. + optional format type = c or b for char or boolean. offset = offset from high order bit to start bit of type. width is # bytes in object of this type, nbits is # bits in type. @@ -4300,6 +4301,7 @@ read_sun_builtin_type (pp, typenums, objfile) int type_bits; int nbits; int signed_type; + enum type_code code = TYPE_CODE_INT; switch (**pp) { @@ -4317,10 +4319,16 @@ read_sun_builtin_type (pp, typenums, objfile) /* For some odd reason, all forms of char put a c here. This is strange because no other type has this honor. We can safely ignore this because we actually determine 'char'acterness by the number of bits specified in - the descriptor. */ + the descriptor. + Boolean forms, e.g Fortran logical*X, put a b here. */ if (**pp == 'c') (*pp)++; + else if (**pp == 'b') + { + code = TYPE_CODE_BOOL; + (*pp)++; + } /* The first number appears to be the number of bytes occupied by this type, except that unsigned short is 4 instead of 2. @@ -4353,7 +4361,7 @@ read_sun_builtin_type (pp, typenums, objfile) signed_type ? 0 : TYPE_FLAG_UNSIGNED, (char *)NULL, objfile); else - return init_type (TYPE_CODE_INT, + return init_type (code, type_bits / TARGET_CHAR_BIT, signed_type ? 0 : TYPE_FLAG_UNSIGNED, (char *)NULL, objfile); |