+2000-10-28 Geoffrey Keating <geoffk@cygnus.com>
+
+ * cpphash.c (cpp_forall_identifiers): Add context variable
+ for callback routine.
+ * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
+ change.
+ (main): Call cpp_forall_identifiers with null context.
+ * cpplib.h (cpp_forall_identifiers): Update prototype.
+
+ * cppmain.c: Make `parse_in' and `print' static.
+
2000-10-28 Alan Modra <alan@linuxcare.com.au>
* c-decl.c (finish_function): Clear c_function_name_declared_p.
}
void
-cpp_forall_identifiers (pfile, cb)
+cpp_forall_identifiers (pfile, cb, v)
cpp_reader *pfile;
- int (*cb) PARAMS ((cpp_reader *, cpp_hashnode *));
+ int (*cb) PARAMS ((cpp_reader *, cpp_hashnode *, void *));
+ void *v;
{
cpp_hashnode **p, **limit;
do
{
if (*p)
- if ((*cb) (pfile, *p) == 0)
+ if ((*cb) (pfile, *p, v) == 0)
break;
}
while (++p < limit);
const unsigned char *, size_t));
extern void cpp_forall_identifiers PARAMS ((cpp_reader *,
int (*) PARAMS ((cpp_reader *,
- cpp_hashnode *))));
+ cpp_hashnode *,
+ void *)),
+ void *));
+
/* In cppmacro.c */
extern void cpp_scan_buffer_nooutput PARAMS ((cpp_reader *));
extern void cpp_start_lookahead PARAMS ((cpp_reader *));
/* General output routines. */
static void scan_buffer PARAMS ((cpp_reader *));
static int printer_init PARAMS ((cpp_reader *));
-static int dump_macro PARAMS ((cpp_reader *, cpp_hashnode *));
+static int dump_macro PARAMS ((cpp_reader *, cpp_hashnode *, void *));
static void print_line PARAMS ((const char *));
static void maybe_print_line PARAMS ((unsigned int));
static void do_pragma_implementation PARAMS ((cpp_reader *));
const char *progname;
-cpp_reader parse_in;
-struct printer print;
+static cpp_reader parse_in;
+static struct printer print;
int
main (argc, argv)
/* -dM command line option. */
if (CPP_OPTION (pfile, dump_macros) == dump_only)
- cpp_forall_identifiers (pfile, dump_macro);
+ cpp_forall_identifiers (pfile, dump_macro, NULL);
cpp_finish (pfile);
cpp_cleanup (pfile);
/* Dump out the hash table. */
static int
-dump_macro (pfile, node)
+dump_macro (pfile, node, v)
cpp_reader *pfile;
cpp_hashnode *node;
+ void *v ATTRIBUTE_UNUSED;
{
if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
{