]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
*** empty log message ***
authorRichard Stallman <rms@gnu.org>
Fri, 15 May 1992 21:01:40 +0000 (21:01 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 15 May 1992 21:01:40 +0000 (21:01 +0000)
From-SVN: r993

gcc/config/svr4.h
gcc/dbxout.c

index fcdd9d026a40413978013da8f7bdf359c942a93d..0a3b99d72d9f89cb4cf6ed90de8db4005dd9fee4 100644 (file)
@@ -249,7 +249,10 @@ do {                                                               \
 /* #define MULTIBYTE_CHARS */
 
 #undef ASM_BYTE_OP
-#define ASM_BYTE_OP    "\t.byte"
+#define ASM_BYTE_OP    ".byte"
+
+#undef SET_ASM_OP
+#define SET_ASM_OP     ".set"
 
 /* This is how to begin an assembly language file.  Most svr4 assemblers want
    at least a .file directive to come first, and some want to see a .version
index 329579931e17d4bea7699877ffb04b3065463b5c..f680465404be220eab170fbaa5f08334345bb87c 100644 (file)
@@ -94,8 +94,8 @@ extern int errno;
 #define ASM_STABN_OP ".stabn"
 #endif
 
-#ifndef DBX_DECL_STABS_CODE
-#define DBX_DECL_STABS_CODE N_LSYM
+#ifndef DBX_TYPE_DECL_STABS_CODE
+#define DBX_TYPE_DECL_STABS_CODE N_LSYM
 #endif
 
 #ifndef DBX_STATIC_CONST_VAR_CODE
@@ -110,6 +110,10 @@ extern int errno;
 #define DBX_REGPARM_STABS_LETTER 'P'
 #endif
 
+#ifndef DBX_MEMPARM_STABS_LETTER
+#define DBX_MEMPARM_STABS_LETTER 'p'
+#endif
+
 /* Nonzero means if the type has methods, only output debugging
    information if methods are actually written to the asm file.  */
 
@@ -1098,6 +1102,9 @@ dbxout_type (type, full, show_arg_types)
          fprintf (asmfile, ":");
          return;
        }
+#ifdef DBX_OUTPUT_ENUM
+      DBX_OUTPUT_ENUM (asmfile, type);
+#else
       putc ('e', asmfile);
       CHARS (1);
       for (tem = TYPE_VALUES (type); tem; tem = TREE_CHAIN (tem))
@@ -1110,6 +1117,7 @@ dbxout_type (type, full, show_arg_types)
        }
       putc (';', asmfile);
       CHARS (1);
+#endif
       break;
 
     case POINTER_TYPE:
@@ -1367,6 +1375,16 @@ dbxout_symbol (decl, local)
            fprintf (asmfile, "%s \"%s:", ASM_STABS_OP,
                     IDENTIFIER_POINTER (DECL_NAME (decl)));
 
+/* #ifndef DBX_NO_EXTRA_TAGS   rms: I think this is no longer needed.  */
+           /* This section makes absolutely no sense to me. Why would a tag
+              ever be needed at this point? The result of this is that any
+              structure typedef with the tag omitted is treated as if the
+              tag was given to be the same as the typedef name. Probably
+              no harm in it, unless the programmer used the same name for
+              the tag of a *different* structure. At any rate, Alliant's
+              debugger would want the tag output before the typedef, so
+              this code still loses.  -- hyc */
+
            /* Short cut way to output a tag also.  */
            if ((TREE_CODE (type) == RECORD_TYPE
                 || TREE_CODE (type) == UNION_TYPE)
@@ -1380,9 +1398,10 @@ dbxout_symbol (decl, local)
                else
                  tag_needed = 1;
              }
+/* #endif */
 
            putc ('t', asmfile);
-           current_sym_code = DBX_DECL_STABS_CODE;
+           current_sym_code = DBX_TYPE_DECL_STABS_CODE;
 
            dbxout_type (type, 1, 0);
            dbxout_finish_symbol (decl);
@@ -1400,7 +1419,7 @@ dbxout_symbol (decl, local)
            if (TREE_CODE (name) == TYPE_DECL)
              name = DECL_NAME (name);
 
-           current_sym_code = DBX_DECL_STABS_CODE;
+           current_sym_code = DBX_TYPE_DECL_STABS_CODE;
            current_sym_value = 0;
            current_sym_addr = 0;
            current_sym_nchars = 2 + IDENTIFIER_LENGTH (name);
@@ -1771,13 +1790,15 @@ dbxout_parms (parms)
              {
                current_sym_nchars = 2 + IDENTIFIER_LENGTH (DECL_NAME (parms));
 
-               fprintf (asmfile, "%s \"%s:p", ASM_STABS_OP,
-                        IDENTIFIER_POINTER (DECL_NAME (parms)));
+               fprintf (asmfile, "%s \"%s:%c", ASM_STABS_OP,
+                        IDENTIFIER_POINTER (DECL_NAME (parms)),
+                        DBX_MEMPARM_STABS_LETTER);
              }
            else
              {
                current_sym_nchars = 8;
-               fprintf (asmfile, "%s \"(anon):p", ASM_STABS_OP);
+               fprintf (asmfile, "%s \"(anon):%c", ASM_STABS_OP,
+                        DBX_MEMPARM_STABS_LETTER);
              }
 
            if (GET_CODE (DECL_RTL (parms)) == REG
@@ -1917,13 +1938,15 @@ dbxout_parms (parms)
              {
                current_sym_nchars = 2 + strlen (IDENTIFIER_POINTER (DECL_NAME (parms)));
 
-               fprintf (asmfile, "%s \"%s:p", ASM_STABS_OP,
-                        IDENTIFIER_POINTER (DECL_NAME (parms)));
+               fprintf (asmfile, "%s \"%s:%c", ASM_STABS_OP,
+                        IDENTIFIER_POINTER (DECL_NAME (parms)),
+                        DBX_MEMPARM_STABS_LETTER);
              }
            else
              {
                current_sym_nchars = 8;
-               fprintf (asmfile, "%s \"(anon):p", ASM_STABS_OP);
+               fprintf (asmfile, "%s \"(anon):%c", ASM_STABS_OP,
+               DBX_MEMPARM_STABS_LETTER);
              }
 
            current_sym_value
@@ -2121,9 +2144,13 @@ dbxout_block (block, depth, args)
                    }
                }
 
+#ifdef DBX_OUTPUT_LBRAC
+             DBX_OUTPUT_LBRAC (asmfile, buf);
+#else
              fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_LBRAC);
              assemble_name (asmfile, buf);
              fprintf (asmfile, "\n");
+#endif
            }
          else if (depth > 0)
            /* Count blocks the same way regardless of debug_info_level.  */
@@ -2146,9 +2173,13 @@ dbxout_block (block, depth, args)
            {
              char buf[20];
              ASM_GENERATE_INTERNAL_LABEL (buf, "LBE", blocknum);
+#ifdef DBX_OUTPUT_RBRAC
+             DBX_OUTPUT_RBRAC (asmfile, buf);
+#else
              fprintf (asmfile, "%s %d,0,0,", ASM_STABN_OP, N_RBRAC);
              assemble_name (asmfile, buf);
              fprintf (asmfile, "\n");
+#endif
            }
        }
       block = BLOCK_CHAIN (block);