aboutsummaryrefslogtreecommitdiff
path: root/gdb/dbxread.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1992-01-28 02:24:08 +0000
committerStu Grossman <grossman@cygnus>1992-01-28 02:24:08 +0000
commit3c03b5de581f6a3ff644ec0dd0feeff5dd3648e5 (patch)
tree5f0288af57bb026c0a69ccbbdd12808767a9b9d8 /gdb/dbxread.c
parent1395529c9d1453977ee5e2f808467466d6ecd9c1 (diff)
downloadgdb-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.c19
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