aboutsummaryrefslogtreecommitdiff
path: root/gdb/stabsread.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1995-01-05 08:18:13 +0000
committerJeff Law <law@redhat.com>1995-01-05 08:18:13 +0000
commit117a817d90627add30de376a42c14220dd21e738 (patch)
treead07d9915c960a8f8730210d61c2dfe65d4c7f5f /gdb/stabsread.c
parentea6d581719a6997397bf12a3391e81ac1b084738 (diff)
downloadgdb-117a817d90627add30de376a42c14220dd21e738.zip
gdb-117a817d90627add30de376a42c14220dd21e738.tar.gz
gdb-117a817d90627add30de376a42c14220dd21e738.tar.bz2
* stabsread.c (define_symbol): Handle `a' symbol type used for
reference parameter passed in a register.
Diffstat (limited to 'gdb/stabsread.c')
-rw-r--r--gdb/stabsread.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 6eb5790..a21e521 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -1186,6 +1186,20 @@ define_symbol (valu, string, desc, type, objfile)
add_symbol_to_list (sym, &local_symbols);
break;
+ case 'a':
+ /* Reference parameter which is in a register. */
+ SYMBOL_TYPE (sym) = read_type (&p, objfile);
+ SYMBOL_CLASS (sym) = LOC_REGPARM_ADDR;
+ SYMBOL_VALUE (sym) = STAB_REG_TO_REGNUM (valu);
+ if (SYMBOL_VALUE (sym) >= NUM_REGS)
+ {
+ complain (&reg_value_complaint, SYMBOL_SOURCE_NAME (sym));
+ SYMBOL_VALUE (sym) = SP_REGNUM; /* Known safe, though useless */
+ }
+ SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
+ add_symbol_to_list (sym, &local_symbols);
+ break;
+
case 'X':
/* This is used by Sun FORTRAN for "function result value".
Sun claims ("dbx and dbxtool interfaces", 2nd ed)