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]

PATCH: Combine C/C++ RIDs



C and C++ shared most of the same reserved identifiers, but not the
same RID_ enumerals.  This patch allows us to share this enumeration
between the two front-ends, which is a) the Right Thing, and b) will
be convenient for some work that Ben is finishing up. :-)
 
--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

2000-06-30  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h.
	* c-common.c (ridpointers): Declare.
	* c-common.h (enum rid): Declare.
	(NORID): Likewise.
	(ridpointers): Likewise.
	* c-lex.c (ridpointers): Don't declare.
	(init_lex): Initialize ridpointers.
	* c-lex.h (enum rid): Don't declare.
	(NORID): Likewise.
	(RID_FIRST_MODIFIER): Likewise.
	(ridpointers): Likewise.
	
2000-06-30  Mark Mitchell  <mark@codesourcery.com>

	* cp-tree.h (ridpointers): Don't declare.
	* decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX.
	(record_builtin_java_type): Likewise.
	(init_decl_processing): Likewise.
	* lex.c: Move inclusion of lex.h.
	(ridpointers): Don't define.
	(init_parse): Initialize ripdointers.  Use CP_RID_MAX instead of
	RID_MAX.
	* lex.h (enum rid): Rename to ...
	(enum cp_rid): ... this.
	(ridpointers): Don't declare.
	* parse.y: Move inclusion of lex.h.
	* parse.c: Regenerated.
	* spew.c: Move inclusion of lex.h.

Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/Makefile.in,v
retrieving revision 1.471
diff -c -p -r1.471 Makefile.in
*** Makefile.in	2000/06/29 17:31:03	1.471
--- Makefile.in	2000/06/30 17:57:04
*************** s-under: $(GCC_PASSES)
*** 1154,1160 ****
  
  # A file used by all variants of C.
  
! c-common.o : c-common.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-lex.h \
  	c-common.h flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \
  	$(EXPR_H)
  
--- 1154,1160 ----
  
  # A file used by all variants of C.
  
! c-common.o : c-common.c $(CONFIG_H) system.h $(TREE_H) \
  	c-common.h flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \
  	$(EXPR_H)
  
Index: c-common.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-common.c,v
retrieving revision 1.122
diff -c -p -r1.122 c-common.c
*** c-common.c	2000/06/30 00:26:00	1.122
--- c-common.c	2000/06/30 17:57:06
*************** enum cpp_token cpp_token;
*** 134,139 ****
--- 134,143 ----
  
  tree c_global_trees[CTI_MAX];
  
+ /* The elements of `ridpointers' are identifier nodes for the reserved
+    type names and storage classes.  It is indexed by a RID_... value.  */
+ tree *ridpointers;
+ 
  tree (*make_fname_decl)                PARAMS ((tree, const char *, int));
  
  /* Nonzero means the expression being parsed will never be evaluated.
Index: c-common.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-common.h,v
retrieving revision 1.19
diff -c -p -r1.19 c-common.h
*** c-common.h	2000/06/30 00:26:01	1.19
--- c-common.h	2000/06/30 17:57:07
*************** along with GNU CC; see the file COPYING.
*** 19,24 ****
--- 19,75 ----
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */
  
+ /* Reserved identifiers.  */
+ 
+ enum rid
+ {
+   RID_UNUSED,
+   RID_INT,
+   RID_CHAR,
+   RID_FLOAT,
+   RID_DOUBLE,
+   RID_VOID,
+   RID_UNUSED1,
+ 
+   /* The first seven are in the order of most frequently used,
+      as emiprically determined.  */
+   RID_FIRST_MODIFIER,
+   RID_EXTERN = RID_FIRST_MODIFIER,
+   RID_CONST,
+   RID_LONG,
+   RID_TYPEDEF,
+   RID_UNSIGNED,
+   RID_SHORT,
+   RID_INLINE,
+   RID_AUTO,
+   RID_STATIC,
+   RID_REGISTER,
+   RID_SIGNED,
+   RID_RESTRICT,
+   RID_VOLATILE,
+   RID_BOUNDED,
+   RID_UNBOUNDED,
+   RID_NOALIAS,
+   RID_ITERATOR,
+   RID_COMPLEX,
+ 
+   RID_IN,
+   RID_OUT,
+   RID_INOUT,
+   RID_BYCOPY,
+   RID_BYREF,
+   RID_ONEWAY,
+   RID_ID,
+ 
+   RID_MAX
+ };
+ 
+ #define NORID RID_UNUSED
+ 
+ /* The elements of `ridpointers' are identifier nodes for the reserved
+    type names and storage classes.  It is indexed by a RID_... value.  */
+ extern tree *ridpointers;
+ 
  /* Standard named or nameless data types of the C compiler.  */
  
  enum c_tree_index
Index: c-lex.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-lex.c,v
retrieving revision 1.85
diff -c -p -r1.85 c-lex.c
*** c-lex.c	2000/06/26 16:42:22	1.85
--- c-lex.c	2000/06/30 17:57:12
*************** FILE *finput;
*** 62,72 ****
  
  extern void yyprint			PARAMS ((FILE *, int, YYSTYPE));
  
- /* The elements of `ridpointers' are identifier nodes
-    for the reserved type names and storage classes.
-    It is indexed by a RID_... value.  */
- tree ridpointers[(int) RID_MAX];
- 
  /* Cause the `yydebug' variable to be defined.  */
  #define YYDEBUG 1
  
--- 62,67 ----
*************** init_lex ()
*** 284,289 ****
--- 279,285 ----
    maxtoken = 40;
    token_buffer = (char *) xmalloc (maxtoken + 2);
  
+   ridpointers = (tree *) xcalloc ((int) RID_MAX, sizeof (tree));
    ridpointers[(int) RID_INT] = get_identifier ("int");
    ridpointers[(int) RID_CHAR] = get_identifier ("char");
    ridpointers[(int) RID_VOID] = get_identifier ("void");
Index: c-lex.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/c-lex.h,v
retrieving revision 1.14
diff -c -p -r1.14 c-lex.h
*** c-lex.h	2000/06/19 22:28:28	1.14
--- c-lex.h	2000/06/30 17:57:12
*************** along with GNU CC; see the file COPYING.
*** 18,74 ****
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */
  
- 
- 
- enum rid
- {
-   RID_UNUSED,
-   RID_INT,
-   RID_CHAR,
-   RID_FLOAT,
-   RID_DOUBLE,
-   RID_VOID,
-   RID_UNUSED1,
- 
-   RID_UNSIGNED,
-   RID_SHORT,
-   RID_LONG,
-   RID_AUTO,
-   RID_STATIC,
-   RID_EXTERN,
-   RID_REGISTER,
-   RID_TYPEDEF,
-   RID_SIGNED,
-   RID_CONST,
-   RID_RESTRICT,
-   RID_VOLATILE,
-   RID_BOUNDED,
-   RID_UNBOUNDED,
-   RID_INLINE,
-   RID_NOALIAS,
-   RID_ITERATOR,
-   RID_COMPLEX,
- 
-   RID_IN,
-   RID_OUT,
-   RID_INOUT,
-   RID_BYCOPY,
-   RID_BYREF,
-   RID_ONEWAY,
-   RID_ID,
- 
-   RID_MAX
- };
- 
- #define NORID RID_UNUSED
- 
- #define RID_FIRST_MODIFIER RID_UNSIGNED
- 
- /* The elements of `ridpointers' are identifier nodes
-    for the reserved type names and storage classes.
-    It is indexed by a RID_... value.  */
- extern tree ridpointers[(int) RID_MAX];
- 
  extern char *token_buffer;	/* Pointer to token buffer.  */
  
  extern tree make_pointer_declarator PARAMS ((tree, tree));
--- 18,23 ----
Index: cp/cp-tree.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/cp-tree.h,v
retrieving revision 1.493
diff -c -p -r1.493 cp-tree.h
*** cp-tree.h	2000/06/30 07:16:34	1.493
--- cp-tree.h	2000/06/30 17:57:21
*************** struct language_function
*** 1034,1041 ****
  extern tree current_function_return_value;
  extern tree global_namespace;
  
- extern tree ridpointers[];
- 
  #define ansi_opname(CODE) \
    (operator_name_info[(int) (CODE)].identifier)
  #define ansi_assopname(CODE) \
--- 1034,1039 ----
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/decl.c,v
retrieving revision 1.647
diff -c -p -r1.647 decl.c
*** decl.c	2000/06/30 07:16:34	1.647
--- decl.c	2000/06/30 17:57:29
*************** signal_catch (sig)
*** 6123,6129 ****
  }
  
  /* Push the declarations of builtin types into the namespace.
!    RID_INDEX, if < RID_MAX is the index of the builtin type
     in the array RID_POINTERS.  NAME is the name used when looking
     up the builtin type.  TYPE is the _TYPE node for the builtin type.  */
  
--- 6123,6129 ----
  }
  
  /* Push the declarations of builtin types into the namespace.
!    RID_INDEX, if < CP_RID_MAX is the index of the builtin type
     in the array RID_POINTERS.  NAME is the name used when looking
     up the builtin type.  TYPE is the _TYPE node for the builtin type.  */
  
*************** record_builtin_type (rid_index, name, ty
*** 6136,6142 ****
    tree rname = NULL_TREE, tname = NULL_TREE;
    tree tdecl = NULL_TREE;
  
!   if ((int) rid_index < (int) RID_MAX)
      rname = ridpointers[(int) rid_index];
    if (name)
      tname = get_identifier (name);
--- 6136,6142 ----
    tree rname = NULL_TREE, tname = NULL_TREE;
    tree tdecl = NULL_TREE;
  
!   if ((int) rid_index < (int) CP_RID_MAX)
      rname = ridpointers[(int) rid_index];
    if (name)
      tname = get_identifier (name);
*************** record_builtin_type (rid_index, name, ty
*** 6147,6153 ****
      {
        tdecl = pushdecl (build_decl (TYPE_DECL, tname, type));
        set_identifier_type_value (tname, NULL_TREE);
!       if ((int) rid_index < (int) RID_MAX)
  	/* Built-in types live in the global namespace. */
  	SET_IDENTIFIER_GLOBAL_VALUE (tname, tdecl);
      }
--- 6147,6153 ----
      {
        tdecl = pushdecl (build_decl (TYPE_DECL, tname, type));
        set_identifier_type_value (tname, NULL_TREE);
!       if ((int) rid_index < (int) CP_RID_MAX)
  	/* Built-in types live in the global namespace. */
  	SET_IDENTIFIER_GLOBAL_VALUE (tname, tdecl);
      }
*************** record_builtin_java_type (name, size)
*** 6190,6196 ****
        TYPE_PRECISION (type) = - size;
        layout_type (type);
      }
!   record_builtin_type (RID_MAX, name, type);
    decl = TYPE_NAME (type);
  
    /* Suppress generate debug symbol entries for these types,
--- 6190,6196 ----
        TYPE_PRECISION (type) = - size;
        layout_type (type);
      }
!   record_builtin_type (CP_RID_MAX, name, type);
    decl = TYPE_NAME (type);
  
    /* Suppress generate debug symbol entries for these types,
*************** init_decl_processing ()
*** 6372,6394 ****
    record_builtin_type (RID_SIGNED, NULL_PTR, integer_type_node);
    record_builtin_type (RID_LONG, "long int", long_integer_type_node);
    record_builtin_type (RID_UNSIGNED, "unsigned int", unsigned_type_node);
!   record_builtin_type (RID_MAX, "long unsigned int", long_unsigned_type_node);
!   record_builtin_type (RID_MAX, "unsigned long", long_unsigned_type_node);
!   record_builtin_type (RID_MAX, "long long int", long_long_integer_type_node);
!   record_builtin_type (RID_MAX, "long long unsigned int",
  		       long_long_unsigned_type_node);
!   record_builtin_type (RID_MAX, "long long unsigned",
  		       long_long_unsigned_type_node);
    record_builtin_type (RID_SHORT, "short int", short_integer_type_node);
!   record_builtin_type (RID_MAX, "short unsigned int", short_unsigned_type_node);
!   record_builtin_type (RID_MAX, "unsigned short", short_unsigned_type_node);
  
    ptrdiff_type_node
      = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (PTRDIFF_TYPE)));
  
    /* Define both `signed char' and `unsigned char'.  */
!   record_builtin_type (RID_MAX, "signed char", signed_char_type_node);
!   record_builtin_type (RID_MAX, "unsigned char", unsigned_char_type_node);
  
    /* `unsigned long' is the standard type for sizeof.
       Note that stddef.h uses `unsigned long',
--- 6372,6398 ----
    record_builtin_type (RID_SIGNED, NULL_PTR, integer_type_node);
    record_builtin_type (RID_LONG, "long int", long_integer_type_node);
    record_builtin_type (RID_UNSIGNED, "unsigned int", unsigned_type_node);
!   record_builtin_type (CP_RID_MAX, "long unsigned int",
! 		       long_unsigned_type_node);
!   record_builtin_type (CP_RID_MAX, "unsigned long", long_unsigned_type_node);
!   record_builtin_type (CP_RID_MAX, "long long int",
! 		       long_long_integer_type_node);
!   record_builtin_type (CP_RID_MAX, "long long unsigned int",
  		       long_long_unsigned_type_node);
!   record_builtin_type (CP_RID_MAX, "long long unsigned",
  		       long_long_unsigned_type_node);
    record_builtin_type (RID_SHORT, "short int", short_integer_type_node);
!   record_builtin_type (CP_RID_MAX, "short unsigned int",
! 		       short_unsigned_type_node); 
!   record_builtin_type (CP_RID_MAX, "unsigned short",
! 		       short_unsigned_type_node);
  
    ptrdiff_type_node
      = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (PTRDIFF_TYPE)));
  
    /* Define both `signed char' and `unsigned char'.  */
!   record_builtin_type (CP_RID_MAX, "signed char", signed_char_type_node);
!   record_builtin_type (CP_RID_MAX, "unsigned char", unsigned_char_type_node);
  
    /* `unsigned long' is the standard type for sizeof.
       Note that stddef.h uses `unsigned long',
*************** init_decl_processing ()
*** 6451,6457 ****
    signed_size_zero_node = build_int_2 (0, 0);
    record_builtin_type (RID_FLOAT, NULL_PTR, float_type_node);
    record_builtin_type (RID_DOUBLE, NULL_PTR, double_type_node);
!   record_builtin_type (RID_MAX, "long double", long_double_type_node);
  
    pushdecl (build_decl (TYPE_DECL, get_identifier ("complex int"),
  			complex_integer_type_node));
--- 6455,6461 ----
    signed_size_zero_node = build_int_2 (0, 0);
    record_builtin_type (RID_FLOAT, NULL_PTR, float_type_node);
    record_builtin_type (RID_DOUBLE, NULL_PTR, double_type_node);
!   record_builtin_type (CP_RID_MAX, "long double", long_double_type_node);
  
    pushdecl (build_decl (TYPE_DECL, get_identifier ("complex int"),
  			complex_integer_type_node));
*************** init_decl_processing ()
*** 6478,6484 ****
  						TYPE_QUAL_CONST));
    empty_except_spec = build_tree_list (NULL_TREE, NULL_TREE);
  #if 0
!   record_builtin_type (RID_MAX, NULL_PTR, string_type_node);
  #endif
  
    /* Make a type to be the domain of a few array types
--- 6482,6488 ----
  						TYPE_QUAL_CONST));
    empty_except_spec = build_tree_list (NULL_TREE, NULL_TREE);
  #if 0
!   record_builtin_type (CP_RID_MAX, NULL_PTR, string_type_node);
  #endif
  
    /* Make a type to be the domain of a few array types
*************** init_decl_processing ()
*** 6595,6610 ****
        vtable_entry_type = build_qualified_type (vtable_entry_type,
  						TYPE_QUAL_CONST);
      }
!   record_builtin_type (RID_MAX, VTBL_PTR_TYPE, vtable_entry_type);
  
    vtbl_type_node
      = build_cplus_array_type (vtable_entry_type, NULL_TREE);
    layout_type (vtbl_type_node);
    vtbl_type_node = build_qualified_type (vtbl_type_node, TYPE_QUAL_CONST);
!   record_builtin_type (RID_MAX, NULL_PTR, vtbl_type_node);
    vtbl_ptr_type_node = build_pointer_type (vtable_entry_type);
    layout_type (vtbl_ptr_type_node);
!   record_builtin_type (RID_MAX, NULL_PTR, vtbl_ptr_type_node);
  
    std_node = build_decl (NAMESPACE_DECL,
  			 flag_honor_std 
--- 6599,6614 ----
        vtable_entry_type = build_qualified_type (vtable_entry_type,
  						TYPE_QUAL_CONST);
      }
!   record_builtin_type (CP_RID_MAX, VTBL_PTR_TYPE, vtable_entry_type);
  
    vtbl_type_node
      = build_cplus_array_type (vtable_entry_type, NULL_TREE);
    layout_type (vtbl_type_node);
    vtbl_type_node = build_qualified_type (vtbl_type_node, TYPE_QUAL_CONST);
!   record_builtin_type (CP_RID_MAX, NULL_PTR, vtbl_type_node);
    vtbl_ptr_type_node = build_pointer_type (vtable_entry_type);
    layout_type (vtbl_ptr_type_node);
!   record_builtin_type (CP_RID_MAX, NULL_PTR, vtbl_ptr_type_node);
  
    std_node = build_decl (NAMESPACE_DECL,
  			 flag_honor_std 
Index: cp/lex.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/lex.c,v
retrieving revision 1.208
diff -c -p -r1.208 lex.c
*** lex.c	2000/06/17 02:37:23	1.208
--- lex.c	2000/06/30 17:57:32
*************** Boston, MA 02111-1307, USA.  */
*** 30,37 ****
  #include "system.h"
  #include "input.h"
  #include "tree.h"
- #include "lex.h"
  #include "cp-tree.h"
  #include "parse.h"
  #include "flags.h"
  #include "obstack.h"
--- 30,37 ----
  #include "system.h"
  #include "input.h"
  #include "tree.h"
  #include "cp-tree.h"
+ #include "lex.h"
  #include "parse.h"
  #include "flags.h"
  #include "obstack.h"
*************** YYLTYPE yylloc;			/*  location data for 
*** 162,172 ****
     used in a context which makes it a reference to a variable.  */
  tree lastiddecl;
  
- /* The elements of `ridpointers' are identifier nodes
-    for the reserved type names and storage classes.
-    It is indexed by a RID_... value.  */
- tree ridpointers[(int) RID_MAX];
- 
  /* We may keep statistics about how long which files took to compile.  */
  static int header_time, body_time;
  static tree filename_times;
--- 162,167 ----
*************** init_parse (filename)
*** 610,615 ****
--- 605,612 ----
    maxtoken = 40;
    token_buffer = (char *) xmalloc (maxtoken + 2);
  
+   my_friendly_assert ((int) CP_RID_MAX < 64, 20000630);
+   ridpointers = (tree *) xcalloc ((int) CP_RID_MAX, sizeof (tree));
    ridpointers[(int) RID_INT] = get_identifier ("int");
    ridpointers[(int) RID_BOOL] = get_identifier ("bool");
    ridpointers[(int) RID_CHAR] = get_identifier ("char");
*************** init_parse (filename)
*** 708,714 ****
    interface_unknown = 1;
  
    ggc_add_string_root (&internal_filename, 1);
!   ggc_add_tree_root (ridpointers, RID_MAX);
    ggc_add_tree_root (&defarg_fns, 1);
    ggc_add_tree_root (&defarg_parm, 1);
    ggc_add_tree_root (&this_filename_time, 1);
--- 705,711 ----
    interface_unknown = 1;
  
    ggc_add_string_root (&internal_filename, 1);
!   ggc_add_tree_root (ridpointers, CP_RID_MAX);
    ggc_add_tree_root (&defarg_fns, 1);
    ggc_add_tree_root (&defarg_parm, 1);
    ggc_add_tree_root (&this_filename_time, 1);
Index: cp/lex.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/lex.h,v
retrieving revision 1.11
diff -c -p -r1.11 lex.h
*** lex.h	2000/02/26 20:15:46	1.11
--- lex.h	2000/06/30 17:57:32
*************** can know your rights and responsibilitie
*** 21,38 ****
  file named COPYING.  Among other things, the copyright notice
  and this notice must be preserved on all copies.  */
  
! 
! 
! enum rid
  {
!   RID_UNUSED,
!   RID_INT,
    RID_BOOL,
-   RID_CHAR,
    RID_WCHAR,
-   RID_FLOAT,
-   RID_DOUBLE,
-   RID_VOID,
  
    /* C++ extension */
    RID_CLASS,
--- 21,37 ----
  file named COPYING.  Among other things, the copyright notice
  and this notice must be preserved on all copies.  */
  
! enum cp_rid
  {
!   RID_FRIEND = RID_MAX,
!   RID_VIRTUAL,
!   RID_EXPLICIT,
!   RID_EXPORT,
!   RID_MUTABLE,
!   RID_LAST_MODIFIER = RID_MUTABLE,
! 
    RID_BOOL,
    RID_WCHAR,
  
    /* C++ extension */
    RID_CLASS,
*************** enum rid
*** 41,77 ****
    RID_ENUM,
    RID_LONGLONG,
  
-   /* This is where grokdeclarator starts its search when setting the specbits.
-      The first seven are in the order of most frequently used, as found
-      building libg++.  */
-   RID_FIRST_MODIFIER,
- 
-   RID_EXTERN = RID_FIRST_MODIFIER,
-   RID_CONST,
-   RID_LONG,
-   RID_TYPEDEF,
-   RID_UNSIGNED,
-   RID_SHORT,
-   RID_INLINE,
- 
-   RID_STATIC,
- 
-   RID_REGISTER,
-   RID_VOLATILE,
-   RID_FRIEND,
-   RID_VIRTUAL,
-   RID_EXPLICIT,
-   RID_EXPORT,
-   RID_SIGNED,
-   RID_AUTO,
-   RID_MUTABLE,
-   RID_COMPLEX,
-   RID_RESTRICT,
- 
-   RID_LAST_MODIFIER = RID_RESTRICT,
-   /* This is where grokdeclarator ends its search when setting the
-      specbits.  */
- 
    RID_PUBLIC,
    RID_PRIVATE,
    RID_PROTECTED,
--- 40,45 ----
*************** enum rid
*** 80,86 ****
    RID_NULL,
    /* Before adding enough to get up to 64, the RIDBIT_* macros
       will have to be changed a little.  */
!   RID_MAX
  };
  
  /* The type that can represent all values of RIDBIT.  */
--- 48,54 ----
    RID_NULL,
    /* Before adding enough to get up to 64, the RIDBIT_* macros
       will have to be changed a little.  */
!   CP_RID_MAX
  };
  
  /* The type that can represent all values of RIDBIT.  */
*************** typedef struct { unsigned long idata[2];
*** 105,115 ****
  				   (V).idata[1] = 0;			      \
  				 } while (0)
  #define RIDBIT_ANY_SET(V) ((V).idata[0] || (V).idata[1])
- 
- /* The elements of `ridpointers' are identifier nodes
-    for the reserved type names and storage classes.
-    It is indexed by a RID_... value.  */
- extern tree ridpointers[(int) RID_MAX];
  
  /* the declaration found for the last IDENTIFIER token read in.
     yylex must look this up to detect typedefs, which get token type TYPENAME,
--- 73,78 ----
Index: cp/parse.y
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/parse.y,v
retrieving revision 1.180
diff -c -p -r1.180 parse.y
*** parse.y	2000/06/24 22:17:18	1.180
--- parse.y	2000/06/30 17:57:40
*************** Boston, MA 02111-1307, USA.  */
*** 38,45 ****
  #include "tree.h"
  #include "input.h"
  #include "flags.h"
- #include "lex.h"
  #include "cp-tree.h"
  #include "output.h"
  #include "except.h"
  #include "toplev.h"
--- 38,45 ----
  #include "tree.h"
  #include "input.h"
  #include "flags.h"
  #include "cp-tree.h"
+ #include "lex.h"
  #include "output.h"
  #include "except.h"
  #include "toplev.h"
Index: cp/spew.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/spew.c,v
retrieving revision 1.28
diff -c -p -r1.28 spew.c
*** spew.c	2000/02/26 20:15:46	1.28
--- spew.c	2000/06/30 17:57:40
*************** Boston, MA 02111-1307, USA.  */
*** 28,35 ****
  #include "system.h"
  #include "input.h"
  #include "tree.h"
- #include "lex.h"
  #include "cp-tree.h"
  #include "parse.h"
  #include "flags.h"
  #include "obstack.h"
--- 28,35 ----
  #include "system.h"
  #include "input.h"
  #include "tree.h"
  #include "cp-tree.h"
+ #include "lex.h"
  #include "parse.h"
  #include "flags.h"
  #include "obstack.h"

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