+1999-08-26 Jim Wilson <wilson@cygnus.com>
+
+ * dwarf2dbg.c (out_end_sequence): Correct comments. Set last to
+ ls.last_filename if last is less than zero. Set ls.last_filename
+ when allocating new entry.
+ (dwarf2_gen_line_info): Save seg and subseg info before subseg_new
+ call.
+
1999-08-20 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (i386_index_check): Fix the displacement size
/* Look up a filenumber either by filename or by filenumber. If both
a filenumber and a filename are specified, lookup by filename takes
precedence. If the filename cannot be found, it is added to the
- filetable the filenumber for the new entry is returned. */
+ filetable and the filenumber for the new entry is returned. */
static int
get_filenum (filenum, file)
int filenum;
int i, last = filenum - 1;
char char0 = file[0];
- if (last >= ls.num_filenames)
+ /* If filenum is out of range of the filename table, then try using the
+ table entry returned from the previous call. */
+ if (last >= ls.num_filenames || last < 0)
last = ls.last_filename;
- /* do a quick check against the previously used filename: */
+ /* Do a quick check against the specified or previously used filenum. */
if (ls.num_filenames > 0 && ls.file[last].name[0] == char0
&& strcmp (ls.file[last].name + 1, file + 1) == 0)
return last + 1;
}
ls.file[ls.num_filenames].dir = 0;
ls.file[ls.num_filenames].name = file;
+ ls.last_filename = ls.num_filenames;
return ++ls.num_filenames;
}
else
return; /* no filename, no filnum => no play */
+ /* Must save these before the subseg_new call, as that call will change
+ them. */
+ saved_seg = now_seg;
+ saved_subseg = now_subseg;
+
if (!ls.line_seg)
{
#ifdef BFD_ASSEMBLER
#endif
}
- saved_seg = now_seg;
- saved_subseg = now_subseg;
subseg_set (ls.line_seg, DL_BODY);
if (ls.text_seg != saved_seg || ls.text_subseg != saved_subseg)