#ifndef GCC_PFE_CP_HEADER_H
#define GCC_PFE_CP_HEADER_H
#ifdef PFE
#include "tree.h"
#include "c-common.h"
#include "varray.h"
#include "cp/cp-tree.h"
#include "cp/lex.h"
struct pfe_lang_compiler_state {
tree cp_global_trees[CPTI_MAX];
tree global_namespace;
varray_type deferred_fns;
varray_type pending_statics;
tree static_ctors;
tree static_dtors;
int flag_apple_kext;
varray_type local_classes;
tree global_type_node;
int only_namespace_names;
int pfe_anon_cnt;
tree integer_two_node;
tree integer_three_node;
int function_depth;
struct saved_scope *scope_chain;
tree pending_templates;
tree last_pending_template;
int template_header_count;
tree saved_trees;
varray_type inline_parm_levels;
size_t inline_parm_levels_used;
tree current_tinst_level;
int processing_template_parmlist;
operator_name_info_t operator_name_info[(int) LAST_CPLUS_TREE_CODE];
operator_name_info_t assignment_operator_name_info[(int) LAST_CPLUS_TREE_CODE];
};
void cp_lang_freeze_thaw_compiler_state PARAMS ((struct pfe_lang_compiler_state **));
extern void pfe_freeze_thaw_decl2_globals PARAMS ((struct pfe_lang_compiler_state *));
extern void pfe_freeze_thaw_decl_globals PARAMS ((struct pfe_lang_compiler_state *));
extern int pfe_get_anon_cnt PARAMS ((void));
extern void pfe_set_anon_cnt PARAMS ((int));
extern void pfe_freeze_thaw_pt_globals PARAMS (( struct pfe_lang_compiler_state *));
extern void pfe_freeze_thaw_saved_scope PARAMS ((struct saved_scope **pp));
extern void pfe_freeze_thaw_operator_name_info PARAMS ((struct operator_name_info_t *p));
extern void cxx_pfe_lang_init PARAMS ((int));
extern void cxx_freeze_thaw_compiler_state PARAMS ((struct pfe_lang_compiler_state **));
extern int cxx_pfe_freeze_thaw_decl PARAMS ((union tree_node *));
extern int cxx_pfe_freeze_thaw_type PARAMS ((union tree_node *));
extern int cxx_pfe_freeze_thaw_special PARAMS ((union tree_node *));
extern void cxx_pfe_check_all_struct_sizes PARAMS ((void));
extern void cxx_pfe_check_settings PARAMS ((struct pfe_lang_compiler_state *));
#endif
#endif