diff options
Diffstat (limited to 'gcc/cpplib.h')
| -rw-r--r-- | gcc/cpplib.h | 35 | 
1 files changed, 29 insertions, 6 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h index 271a755..bccfecf 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -400,6 +400,12 @@ struct cpp_options    /* Nonzero means __STDC__ should have the value 0 in system headers.  */    unsigned char stdc_0_in_system_headers; + +  /* True to warn about precompiled header files we couldn't use.  */ +  bool warn_invalid_pch; + +  /* True if dependencies should be restored from a precompiled header.  */ +  bool restore_pch_deps;  };  /* Call backs.  */ @@ -417,6 +423,8 @@ struct cpp_callbacks    /* Called when the client has a chance to properly register       built-ins with cpp_define() and cpp_assert().  */    void (*register_builtins) PARAMS ((cpp_reader *)); +  int (*valid_pch) PARAMS ((cpp_reader *, const char *, int)); +  void (*read_pch) PARAMS ((cpp_reader *, const char *, int, const char *));  };  /* Name under which this program was invoked.  */ @@ -472,7 +480,7 @@ enum builtin_type  /* The common part of an identifier node shared amongst all 3 C front     ends.  Also used to store CPP identifiers, which are a superset of     identifiers in the grammatical sense.  */ -struct cpp_hashnode +struct cpp_hashnode GTY(())  {    struct ht_identifier ident;    unsigned int is_directive : 1; @@ -485,11 +493,15 @@ struct cpp_hashnode    union _cpp_hashnode_value    { -    cpp_macro *macro;			/* If a macro.  */ -    struct answer *answers;		/* Answers to an assertion.  */ -    enum builtin_type builtin;		/* Code for a builtin macro.  */ -    unsigned short arg_index;		/* Macro argument index.  */ -  } value; +    /* If a macro.  */ +    cpp_macro * GTY((skip (""))) macro; +    /* Answers to an assertion.  */ +    struct answer * GTY ((skip (""))) answers; +    /* Code for a builtin macro.  */ +    enum builtin_type GTY ((tag ("1"))) builtin; +    /* Macro argument index.  */ +    unsigned short GTY ((tag ("0"))) arg_index; +  } GTY ((desc ("0"))) value;  };  /* Call this first to get a handle to pass to other functions.  */ @@ -722,6 +734,17 @@ extern unsigned char *cpp_quote_string	PARAMS ((unsigned char *,  extern int cpp_included	PARAMS ((cpp_reader *, const char *));  extern void cpp_make_system_header PARAMS ((cpp_reader *, int, int)); +/* In cpppch.c */ +struct save_macro_data; +extern int cpp_save_state PARAMS ((cpp_reader *, FILE *)); +extern int cpp_write_pch_deps PARAMS ((cpp_reader *, FILE *)); +extern int cpp_write_pch_state PARAMS ((cpp_reader *, FILE *)); +extern int cpp_valid_state PARAMS ((cpp_reader *, const char *, int)); +extern void cpp_prepare_state PARAMS ((cpp_reader *,  +				       struct save_macro_data **)); +extern int cpp_read_state PARAMS ((cpp_reader *, const char *, FILE *, +				   struct save_macro_data *)); +  /* In cppmain.c */  extern void cpp_preprocess_file PARAMS ((cpp_reader *, const char *, FILE *));  | 
