* dbxread.c (process_one_symbol): Make a first cut at handling
authorStu Grossman <grossman@cygnus>
Tue, 28 Jan 1992 02:24:08 +0000 (02:24 +0000)
committerStu Grossman <grossman@cygnus>
Tue, 28 Jan 1992 02:24:08 +0000 (02:24 +0000)
symbol tables generated by Suns acc.

gdb/ChangeLog
gdb/dbxread.c

index 11d2fb3..bc5cfb1 100644 (file)
@@ -1,5 +1,8 @@
 Mon Jan 27 15:46:21 1992  Stu Grossman  (grossman at cygnus.com)
 
+       * dbxread.c (process_one_symbol):  Make a first cut at handling
+       symbol tables generated by Suns acc.
+
        * symtab.c (find_pc_line):  Fix stepping into and out of #included
        files.
 
index 8bb9365..251a81a 100644 (file)
@@ -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