David Mosberger <davidm@hpl.hp.com>
authorRichard Henderson <rth@redhat.com>
Sat, 26 Jun 1999 16:10:10 +0000 (16:10 +0000)
committerRichard Henderson <rth@redhat.com>
Sat, 26 Jun 1999 16:10:10 +0000 (16:10 +0000)
        * dwarf2dbg.c (dwarf2_gen_line_info): Don't call
        out_end_sequence() when the address decreases due to a new frag.
        (gen_dir_list): Set ls.file[i].dir to j + 1 (not j) because file
        numbering starts with 1.

gas/ChangeLog
gas/dwarf2dbg.c

index 1154e64..9d0c758 100644 (file)
@@ -1,3 +1,10 @@
+1999-06-26  David Mosberger  <davidm@hpl.hp.com>
+
+       * dwarf2dbg.c (dwarf2_gen_line_info): Don't call
+       out_end_sequence() when the address decreases due to a new frag.
+       (gen_dir_list): Set ls.file[i].dir to j + 1 (not j) because file
+       numbering starts with 1.
+
 1999-06-23  Nick Clifton  <nickc@cygnus.com>
 
        * config/tc-mcore.c (md_pseudo_table): Add .comm for ELF and allow
index 403452c..48e9646 100644 (file)
@@ -468,11 +468,14 @@ dwarf2_gen_line_info (addr, l)
       any_output = 1;
       if (addr < ls.sm.addr)
        {
-         if (!ls.sm.empty_sequence)
-           {
-             out_end_sequence ();
-             ls.sm.empty_sequence = 1;
-           }
+         /* This happens when a new frag got allocated (for whatever
+            reason).  Deal with it by generating a reference symbol.
+            Note: no end_sequence needs to be generated because the
+            address did not really decrease (only the reference point
+            changed).
+
+            ??? Perhaps we should directly check for a change of
+            frag_now instead?  */
          out_set_addr (addr);
          ls.sm.addr = addr;
        }
@@ -510,7 +513,7 @@ gen_dir_list ()
            {
              if (strcmp (str, dp) == 0)
                {
-                 ls.file[i].dir = j;
+                 ls.file[i].dir = j + 1;
                  break;
                }
              dp += strlen (dp);