This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

add context to cpp_forall_identifiers



This patch:
- Adds a context parameter to cpp_forall_identifiers
- Makes some global variables in cppmain.c static.

I needed the context parameter for ease of coding the precompiled
header code.

Bootstrapped and tested on x86-linux, without enabling the integrated
cpp.

-- 
- Geoffrey Keating <geoffk@cygnus.com>

===File ~/patches/cygnus/pch-forallctx.patch================
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.

Index: cpphash.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cpphash.c,v
retrieving revision 1.107
diff -u -p -r1.107 cpphash.c
--- cpphash.c	2000/10/28 17:59:04	1.107
+++ cpphash.c	2000/10/29 06:56:36
@@ -264,9 +264,10 @@ higher_prime_number (n)
 }
 
 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;
 
@@ -275,7 +276,7 @@ cpp_forall_identifiers (pfile, cb)
   do
     {
       if (*p)
-	if ((*cb) (pfile, *p) == 0)
+	if ((*cb) (pfile, *p, v) == 0)
 	  break;
     }
   while (++p < limit);
Index: cpplib.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cpplib.h,v
retrieving revision 1.127
diff -u -p -r1.127 cpplib.h
--- cpplib.h	2000/10/28 17:59:05	1.127
+++ cpplib.h	2000/10/29 06:56:36
@@ -802,7 +802,10 @@ extern cpp_hashnode *cpp_lookup		PARAMS 
 						 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 *));
Index: cppmain.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cppmain.c,v
retrieving revision 1.37
diff -u -p -r1.37 cppmain.c
--- cppmain.c	2000/10/28 17:59:06	1.37
+++ cppmain.c	2000/10/29 06:56:36
@@ -42,7 +42,7 @@ int main		PARAMS ((int, char **));
 /* 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));
@@ -62,8 +62,8 @@ static void cb_def_pragma PARAMS ((cpp_r
 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)
@@ -143,7 +143,7 @@ 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);
@@ -429,9 +429,10 @@ do_pragma_implementation (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))
     {
============================================================

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]