OSDN Git Service

* reload1.c (move2add_last_cc0): New.
[pf3gnuchains/gcc-fork.git] / gcc / gengtype.h
index e5f92f2..0c23d95 100644 (file)
@@ -41,7 +41,7 @@ enum typekind {
 typedef struct options {
   struct options *next;
   const char *name;
-  void *info;
+  const void *info;
 } *options_p;
 
 typedef struct pair *pair_p;
@@ -57,6 +57,8 @@ struct pair {
   options_p opt;
 };
 
+#define NUM_PARAM 10
+
 /* A description of a type.  */
 struct type {
   enum typekind kind;
@@ -85,7 +87,7 @@ struct type {
     } a;
     struct {
       type_p stru;
-      type_p param;
+      type_p param[NUM_PARAM];
       struct fileloc line;
     } param_struct;
   } u;
@@ -109,7 +111,14 @@ extern struct fileloc lexer_line;
 
 /* Print an error message.  */
 extern void error_at_line 
-  VPARAMS ((struct fileloc *pos, const char *msg, ...));
+  PARAMS ((struct fileloc *pos, const char *msg, ...)) ATTRIBUTE_PRINTF_2;
+
+/* Combines xmalloc() and vasprintf().  */
+extern int xvasprintf PARAMS ((char **, const char *, va_list))
+     ATTRIBUTE_PRINTF (2, 0);
+/* Like the above, but more convenient for quick coding.  */
+extern char * xasprintf PARAMS ((const char *, ...))
+     ATTRIBUTE_PRINTF_1;
 
 /* Constructor routines for types.  */
 extern void do_typedef PARAMS ((const char *s, type_p t, struct fileloc *pos));
@@ -131,27 +140,42 @@ extern void note_yacc_type PARAMS ((options_p o, pair_p fields,
 extern int yylex PARAMS((void));
 extern void yyerror PARAMS ((const char *));
 extern int yyparse PARAMS ((void));
-extern void parse_file PARAMS ((char *name));
+extern void parse_file PARAMS ((const char *name));
 
 /* Output file handling.  */
 
-FILE *get_output_file PARAMS ((const char *input_file));
-const char *get_output_file_name PARAMS ((const char *));
+/* Structure representing an output file.  */
+struct outf 
+{
+  struct outf *next;
+  const char *name;
+  size_t buflength;
+  size_t bufused;
+  char *buf;
+};
+
+typedef struct outf * outf_p;
 
 /* The output header file that is included into pretty much every
    source file.  */
-extern FILE *header_file;
+extern outf_p header_file;
 
 /* An output file, suitable for definitions, that can see declarations
    made in INPUT_FILE and is linked into every language that uses
    INPUT_FILE.  */
-extern FILE *get_output_file_with_visibility PARAMS ((const char *input_file));
+extern outf_p get_output_file_with_visibility 
+   PARAMS ((const char *input_file));
+const char *get_output_file_name PARAMS ((const char *));
 
 /* A list of output files suitable for definitions.  There is one
    BASE_FILES entry for each language.  */
-extern FILE *base_files[];
+extern outf_p base_files[];
 
 /* A bitmap that specifies which of BASE_FILES should be used to
    output a definition that is different for each language and must be
    defined once in each language that uses INPUT_FILE.  */
 extern lang_bitmap get_base_file_bitmap PARAMS ((const char *input_file));
+
+/* Print, like fprintf, to O.  */
+extern void oprintf PARAMS ((outf_p o, const char *S, ...))
+     ATTRIBUTE_PRINTF_2;