aboutsummaryrefslogtreecommitdiff
path: root/gas/dwarf2dbg.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/dwarf2dbg.c')
-rw-r--r--gas/dwarf2dbg.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index 403452c..48e9646 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -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);