The arguments are a BFD, a section, and an offset. */
{
static bfd *last_bfd;
- static char *last_file = NULL;
- static char *last_function = NULL;
+ static char *last_file;
+ static char *last_function;
bfd *abfd;
asection *section;
bfd_vma offset;
(eg emacs) to correctly locate multiple
errors in the same source file. */
if (last_bfd == NULL
- || last_file == NULL
|| last_function == NULL
|| last_bfd != abfd
+ || (last_file == NULL) != (filename == NULL)
|| (filename != NULL
&& filename_cmp (last_file, filename) != 0)
|| strcmp (last_function, functionname) != 0)