diff options
author | Stu Grossman <grossman@cygnus> | 1992-01-28 02:24:08 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1992-01-28 02:24:08 +0000 |
commit | 3c03b5de581f6a3ff644ec0dd0feeff5dd3648e5 (patch) | |
tree | 5f0288af57bb026c0a69ccbbdd12808767a9b9d8 /gdb/dbxread.c | |
parent | 1395529c9d1453977ee5e2f808467466d6ecd9c1 (diff) | |
download | gdb-3c03b5de581f6a3ff644ec0dd0feeff5dd3648e5.zip gdb-3c03b5de581f6a3ff644ec0dd0feeff5dd3648e5.tar.gz gdb-3c03b5de581f6a3ff644ec0dd0feeff5dd3648e5.tar.bz2 |
* dbxread.c (process_one_symbol): Make a first cut at handling
symbol tables generated by Suns acc.
Diffstat (limited to 'gdb/dbxread.c')
-rw-r--r-- | gdb/dbxread.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 8bb9365..251a81a 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -1355,6 +1355,13 @@ process_one_symbol (type, desc, valu, name) { case N_FUN: case N_FNAME: +/* It seems that the Sun ANSI C compiler (acc) replaces N_FUN with N_GSYM and + N_STSYM with a type code of f or F. Can't enable this until we get some + stuff straightened out with psymtabs. +*/ + case N_GSYM: + case N_STSYM: + /* Either of these types of symbols indicates the start of a new function. We must process its "name" normally for dbx, but also record the start of a new lexical context, and possibly @@ -1362,10 +1369,6 @@ process_one_symbol (type, desc, valu, name) /* This is not always true. This type of symbol may indicate a text segment variable. */ -#ifndef SUN_FIXED_LBRAC_BUG - last_pc_address = valu; /* Save for SunOS bug circumcision */ -#endif - colon_pos = strchr (name, ':'); if (!colon_pos++ || (*colon_pos != 'f' && *colon_pos != 'F')) @@ -1374,6 +1377,10 @@ process_one_symbol (type, desc, valu, name) break; } +#ifndef SUN_FIXED_LBRAC_BUG + last_pc_address = valu; /* Save for SunOS bug circumcision */ +#endif + within_function = 1; if (context_stack_depth > 0) { @@ -1384,7 +1391,7 @@ process_one_symbol (type, desc, valu, name) } /* Stack must be empty now. */ if (context_stack_depth != 0) - complain (lbrac_unmatched_complaint, symnum); + complain (&lbrac_unmatched_complaint, symnum); new = push_context (0, valu); new->name = define_symbol (valu, name, desc, type); @@ -1432,7 +1439,7 @@ process_one_symbol (type, desc, valu, name) new = pop_context(); if (desc != new->depth) - complain (lbrac_mismatch_complaint, symnum); + complain (&lbrac_mismatch_complaint, symnum); /* Some compilers put the variable decls inside of an LBRAC/RBRAC block. This macro should be nonzero if this |