* config/te-aix5.h: Typo fix.
[deliverable/binutils-gdb.git] / gas / stabs.c
index eed11b31c697d6b3763305b54060be3ab2714dda..60b03c49941b3d6613945ee52dd5f94d1c8972ab 100644 (file)
@@ -217,7 +217,7 @@ s_stab_generic (what, stab_secname, stabstr_secname)
        input_line_pointer++;
       else
        {
-         as_warn (_(".stabs: Missing comma"));
+         as_warn (_(".stab%c: missing comma"), what);
          ignore_rest_of_line ();
          return;
        }
@@ -225,7 +225,7 @@ s_stab_generic (what, stab_secname, stabstr_secname)
 
   if (get_absolute_expression_and_terminator (&longint) != ',')
     {
-      as_warn (_(".stab%c: Missing comma"), what);
+      as_warn (_(".stab%c: missing comma"), what);
       ignore_rest_of_line ();
       return;
     }
@@ -233,7 +233,7 @@ s_stab_generic (what, stab_secname, stabstr_secname)
 
   if (get_absolute_expression_and_terminator (&longint) != ',')
     {
-      as_warn (_(".stab%c: Missing comma"), what);
+      as_warn (_(".stab%c: missing comma"), what);
       ignore_rest_of_line ();
       return;
     }
@@ -244,7 +244,7 @@ s_stab_generic (what, stab_secname, stabstr_secname)
     {
       if (*input_line_pointer != ',')
        {
-         as_warn (_(".stab%c: Missing comma"), what);
+         as_warn (_(".stab%c: missing comma"), what);
          ignore_rest_of_line ();
          return;
        }
@@ -469,7 +469,7 @@ s_desc (ignore)
   if (*input_line_pointer != ',')
     {
       *p = 0;
-      as_bad (_("Expected comma after name \"%s\""), name);
+      as_bad (_("expected comma after \"%s\""), name);
       *p = c;
       ignore_rest_of_line ();
     }
@@ -539,7 +539,7 @@ generate_asm_file (type, file)
   while (tmp < endp)
     {
       char *bslash = strchr (tmp, '\\');
-      int len = (bslash ? (bslash - tmp + 1) : strlen (tmp));
+      size_t len = (bslash) ? (size_t) (bslash - tmp + 1) : strlen (tmp);
 
       /* Double all backslashes, since demand_copy_C_string (used by
         s_stab to extract the part in quotes) will try to replace them as
@@ -580,10 +580,9 @@ stabs_generate_asm_lineno ()
   unsigned int lineno;
   char *buf;
   char sym[30];
-
-  /* Let the world know that we are in the middle of generating a
-     piece of stabs line debugging information.  */
-  outputting_stabs_line_debug = 1;
+  /* Remember the last file/line and avoid duplicates. */
+  static unsigned int prev_lineno = -1;
+  static char *prev_file = NULL;
 
   /* Rather than try to do this in some efficient fashion, we just
      generate a string and then parse it again.  That lets us use the
@@ -594,6 +593,34 @@ stabs_generate_asm_lineno ()
 
   as_where (&file, &lineno);
 
+  /* Don't emit sequences of stabs for the same line. */
+  if (prev_file == NULL)
+    {
+      /* First time thru. */
+      prev_file = xstrdup (file);
+      prev_lineno = lineno;
+    }
+  else if (lineno == prev_lineno
+          && strcmp (file, prev_file) == 0)
+    {
+      /* Same file/line as last time. */
+      return;
+    }
+  else
+    {
+      /* Remember file/line for next time. */
+      prev_lineno = lineno;
+      if (strcmp (file, prev_file) != 0)
+       {
+         free (prev_file);
+         prev_file = xstrdup (file);
+       }
+    }
+
+  /* Let the world know that we are in the middle of generating a
+     piece of stabs line debugging information.  */
+  outputting_stabs_line_debug = 1;
+
   generate_asm_file (N_SOL, file);
 
   sprintf (sym, "%sL%d", FAKE_LABEL_NAME, label_count);
This page took 0.025227 seconds and 4 git commands to generate.