Boston, MA 02111-1307, USA. */
#include "defs.h"
-#include "obstack.h"
+#include "gdb_obstack.h"
#include "splay-tree.h"
#include "symtab.h"
#include "symfile.h"
/* Free a possibly bcached object OBJ. That is, if the macro table T
has a bcache, it's an error; otherwise, xfree OBJ. */
-void
+static void
macro_bcache_free (struct macro_table *t, void *obj)
{
gdb_assert (! t->bcache);
struct macro_source_file **link;
/* Find the right position in SOURCE's `includes' list for the new
- file. Scan until we find the first file we shouldn't follow ---
- which is therefore the file we should directly precede --- or
- reach the end of the list. */
+ file. Skip inclusions at earlier lines, until we find one at the
+ same line or later --- or until the end of the list. */
for (link = &source->includes;
- *link && line < (*link)->included_at_line;
+ *link && (*link)->included_at_line < line;
link = &(*link)->next_included)
;
should tolerate bad debug info. So:
First, squawk. */
- static struct complaint bogus_inclusion_line = {
- "both `%s' and `%s' allegedly #included at %s:%d", 0, 0
- };
-
- complain (&bogus_inclusion_line,
- included, (*link)->filename, source->filename, line);
+ complaint (&symfile_complaints,
+ "both `%s' and `%s' allegedly #included at %s:%d", included,
+ (*link)->filename, source->filename, line);
/* Now, choose a new, unoccupied line number for this
#inclusion, after the alleged #inclusion line. */
if (! same)
{
- static struct complaint macro_redefined = {
- "macro `%s' redefined at %s:%d; original definition at %s:%d",
- 0, 0
- };
- complain (¯o_redefined,
- name,
- source->filename, line,
- found_key->start_file->filename,
- found_key->start_line);
+ complaint (&symfile_complaints,
+ "macro `%s' redefined at %s:%d; original definition at %s:%d",
+ name, source->filename, line,
+ found_key->start_file->filename, found_key->start_line);
}
return found_key;
if (key->end_file)
{
- static struct complaint double_undef = {
- "macro '%s' is #undefined twice, at %s:%d and %s:%d",
- 0, 0
- };
- complain (&double_undef, name, source->filename, line,
- key->end_file->filename, key->end_line);
+ complaint (&symfile_complaints,
+ "macro '%s' is #undefined twice, at %s:%d and %s:%d", name,
+ source->filename, line, key->end_file->filename,
+ key->end_line);
}
/* Whatever the case, wipe out the old ending point, and
has no macro definition in scope is ignored. So we should
ignore it too. */
#if 0
- static struct complaint no_macro_to_undefine = {
- "no definition for macro `%s' in scope to #undef at %s:%d",
- 0, 0
- };
- complain (&no_macro_to_undefine, name, source->filename, line);
+ complaint (&symfile_complaints,
+ "no definition for macro `%s' in scope to #undef at %s:%d",
+ name, source->filename, line);
#endif
}
}