Home | History | Annotate | Download | only in cp

Lines Matching refs:tree

193 /* Language-specific tree checkers.  */
225 tree class_template_info;
226 tree label_value;
244 tree decl;
250 tree member;
297 /* Nonzero if we are presently building a statement tree, rather
325 tree function;
356 tree binfo;
357 tree functions;
358 tree access_binfo;
509 VEC(tree,gc) *instantiations;
529 tree condition;
530 tree message;
536 tree argument_pack;
579 tree type1;
580 tree type2;
652 tree capture_list;
653 tree this_capture;
654 tree return_type;
655 tree extra_scope;
674 tree typedef_decl;
675 tree context;
705 /* The resulting tree type. */
800 extern GTY(()) tree cp_global_trees[CPTI_MAX];
834 /* We cache these tree nodes so as to call get_identifier less
911 access nodes in tree.h. */
919 tree old_namespace;
920 VEC(tree,gc) *decl_ns_list;
921 tree class_name;
922 tree class_type;
923 tree access_specifier;
924 tree function_decl;
925 VEC(tree,gc) *lang_base;
926 tree lang_name;
927 tree template_parms;
929 tree x_saved_tree;
999 tree to;
1010 tree x_cdtor_label;
1011 tree x_current_class_ptr;
1012 tree x_current_class_ref;
1013 tree x_eh_spec_block;
1014 tree x_in_charge_parm;
1015 tree x_vtt_parm;
1016 tree x_return_value;
1029 VEC(tree,gc) *x_local_names;
1117 /* TRUE if a tree code represents a statement. */
1234 tree purpose;
1235 tree value;
1333 tree primary_base;
1335 tree vtables;
1336 tree typeinfo_var;
1337 VEC(tree,gc) *vbases;
1339 tree as_base;
1340 VEC(tree,gc) *pure_virtuals;
1341 tree friend_classes;
1342 VEC(tree,gc) * GTY((reorder ("resort_type_method_vec"))) methods;
1343 tree key_method;
1344 tree decl_list;
1345 tree template_info;
1346 tree befriending_classes;
1350 tree objc_info;
1356 tree lambda_expr;
1361 tree record;
1531 (VEC_index (tree, CLASSTYPE_METHOD_VEC (NODE), CLASSTYPE_CONSTRUCTOR_SLOT))
1539 ? VEC_index (tree, CLASSTYPE_METHOD_VEC (NODE), CLASSTYPE_DESTRUCTOR_SLOT) \
1593 /* A VEC(tree) of virtual functions which cannot be inherited by
1841 tree template_info;
1847 tree GTY ((tag ("0"))) access;
1881 /* For a non-thunk function decl, this is a tree list of
1884 tree befriending_classes;
1892 tree context;
1898 tree GTY ((tag ("0"))) cloned_function;
1931 tree.h declares it as a struct. */
2448 extern tree decl_shadowed_for_var_lookup (tree);
2449 extern void decl_shadowed_for_var_insert (tree, tree);
2848 tree t; /* the aggr_init_expr */
2856 init_aggr_init_expr_arg_iterator (tree exp,
2866 static inline tree
2869 tree result;
2881 static inline tree
2882 first_aggr_init_expr_arg (tree exp, aggr_init_expr_arg_iterator *iter)
3026 Note that INTEGRAL_TYPE_P, as defined in tree.h, allows enumeration
3157 /* When appearing in an INDIRECT_REF, it means that the tree structure
3270 in ascending tree code order. */
3275 in ascending tree code order. */
3280 void. Keep these checks in ascending tree code order. */
3514 these checks in ascending tree code order. */
3531 UNBOUND_CLASS_TEMPLATE tree node. */
3729 /* A tree indicating how to perform the virtual adjustment. For a this
4026 extern GTY(()) tree integer_two_node;
4040 extern tree cp_convert_range_for (tree, tree, tree);
4060 extern GTY(()) VEC(tree,gc) *local_classes;
4168 extern GTY(()) tree static_aggregates;
4358 /* These constants can used as bit flags in the process of tree formatting.
4407 tree identifier;
4416 /* A mapping from tree codes to operator name information. */
4475 tree type;
4477 tree attributes;
4480 tree redefined_builtin_type;
4532 tree default_argument;
4547 tree attributes;
4556 tree qualifying_scope;
4559 tree unqualified_name;
4567 tree parameters;
4571 tree exception_specification;
4573 tree late_return_type;
4578 tree bounds;
4585 tree class_type;
4606 tree decl;
4623 extern bool check_dtor_name (tree, tree);
4625 extern tree build_conditional_expr (tree, tree, tree,
4627 extern tree build_addr_func (tree);
4628 extern tree build_call_a (tree, int, tree*);
4629 extern tree build_call_n (tree, int, ...);
4630 extern bool null_ptr_cst_p (tree);
4632 extern tree type_decays_to (tree);
4633 extern tree build_user_type_conversion (tree, tree, int);
4634 extern tree build_new_function_call (tree, VEC(tree,gc) **, bool,
4636 extern tree build_operator_new_call (tree, VEC(tree,gc) **, tree *,
4637 tree *, tree *);
4638 extern tree build_new_method_call (tree, tree, VEC(tree,gc) **,
4639 tree, int, tree *,
4641 extern tree build_special_member_call (tree, tree, VEC(tree,gc) **,
4642 tree, int, tsubst_flags_t);
4643 extern tree build_new_op (enum tree_code, int, tree,
4644 tree, tree, bool *,
4646 extern tree build_op_call (tree, VEC(tree,gc) **,
4648 extern tree build_op_delete_call (enum tree_code, tree, tree, bool, tree, tree);
4649 extern bool can_convert (tree, tree);
4650 extern bool can_convert_arg (tree, tree, tree, int);
4651 extern bool can_convert_arg_bad (tree, tree, tree, int);
4652 extern bool enforce_access (tree, tree, tree);
4653 extern tree convert_default_arg (tree, tree, tree, int);
4654 extern tree convert_arg_to_ellipsis (tree);
4655 extern tree build_x_va_arg (tree, tree);
4656 extern tree cxx_type_promotes_to (tree);
4657 extern tree type_passed_as (tree);
4658 extern tree convert_for_arg_passing (tree, tree);
4659 extern bool is_properly_derived_from (tree, tree);
4660 extern tree set_up_extended_ref_temp (tree, tree, tree *, tree *);
4661 extern tree initialize_reference (tree, tree, tree, tree *, tsubst_flags_t);
4662 extern tree make_temporary_var_for_ref_to_temp (tree, tree);
4663 extern tree strip_top_quals (tree);
4664 extern bool reference_related_p (tree, tree);
4665 extern tree perform_implicit_conversion (tree, tree, tsubst_flags_t);
4666 extern tree perform_implicit_conversion_flags (tree, tree, tsubst_flags_t, int);
4667 extern tree build_integral_nontype_arg_conv (tree, tree, tsubst_flags_t);
4668 extern tree perform_direct_initialization_if_possible (tree, tree, bool,
4670 extern tree in_charge_arg_for_name (tree);
4671 extern tree build_cxx_call (tree, int, tree *);
4672 extern bool is_std_init_list (tree);
4673 extern bool is_list_ctor (tree);
4679 extern tree build_vfield_ref (tree, tree);
4680 extern tree build_base_path (enum tree_code, tree,
4681 tree, int);
4682 extern tree convert_to_base (tree, tree, bool, bool,
4684 extern tree convert_to_base_statically (tree, tree);
4685 extern tree build_vtbl_ref (tree, tree);
4686 extern tree build_vfn_ref (tree, tree);
4687 extern tree get_vtable_decl (tree, int);
4690 extern bool add_method (tree, tree, tree);
4691 extern bool currently_open_class (tree);
4692 extern tree currently_open_derived_class (tree);
4693 extern tree current_nonlambda_class_type (void);
4694 extern tree finish_struct (tree, tree);
4695 extern void finish_struct_1 (tree);
4696 extern int resolves_to_fixed_type_p (tree, int *);
4698 extern int is_empty_class (tree);
4699 extern bool is_really_empty_class (tree);
4700 extern void pushclass (tree);
4702 extern void push_nested_class (tree);
4705 extern void push_lang_context (tree);
4707 extern tree instantiate_type (tree, tree, tsubst_flags_t);
4711 extern void maybe_add_class_template_decl_list (tree, tree, int);
4712 extern void unreverse_member_declarations (tree);
4714 extern void maybe_note_name_used_in_class (tree, tree);
4715 extern void note_name_declared_in_class (tree, tree);
4716 extern tree get_vtbl_decl_for_binfo (tree);
4717 extern void debug_class (tree);
4718 extern void debug_thunks (tree);
4719 extern tree cp_get_virtual_function_decl (tree, tree);
4720 extern tree cp_fold_obj_type_ref (tree, tree);
4721 extern bool cp_decl_is_base_field (tree);
4722 extern bool cp_decl_is_constructor (tree);
4723 extern bool cp_decl_is_destructor (tree);
4724 extern int cp_decl_is_const_member_func (tree);
4725 extern void set_linkage_according_to_type (tree, tree);
4726 extern void determine_key_method (tree);
4727 extern void check_for_override (tree, tree);
4730 extern bool type_has_user_nondefault_constructor (tree);
4731 extern tree in_class_defaulted_default_constructor (tree);
4732 extern bool user_provided_p (tree);
4733 extern bool type_has_user_provided_constructor (tree);
4734 extern bool type_has_user_provided_default_constructor (tree);
4735 extern tree default_init_uninitialized_part (tree);
4736 extern bool synthesized_default_constructor_is_constexpr (tree);
4737 extern bool type_has_constexpr_default_constructor (tree);
4738 extern bool type_has_virtual_destructor (tree);
4739 extern bool type_has_move_constructor (tree);
4740 extern bool type_has_move_assign (tree);
4741 extern void defaulted_late_check (tree);
4742 extern bool defaultable_fn_check (tree);
4743 extern void fixup_type_variants (tree);
4744 extern void fixup_attribute_variants (tree);
4745 extern tree* decl_cloned_function_p (const_tree, bool);
4746 extern void clone_function_decl (tree, int);
4747 extern void adjust_clone_args (tree);
4750 extern tree convert_to_reference (tree, tree, int, int, tree);
4751 extern tree convert_from_reference (tree);
4752 extern tree force_rvalue (tree);
4753 extern tree ocp_convert (tree, tree, int, int);
4754 extern tree cp_convert (tree, tree);
4755 extern tree cp_convert_and_check (tree, tree);
4756 extern tree cp_fold_convert (tree, tree);
4757 extern tree convert_to_void (tree, impl_conv_void,
4759 extern tree convert_force (tree, tree, int);
4760 extern tree build_expr_type_conversion (int, tree, bool);
4761 extern tree type_promotes_to (tree);
4762 extern tree perform_qualification_conversions (tree, tree);
4765 extern tree pushdecl (tree);
4766 extern tree pushdecl_maybe_friend (tree, bool);
4767 extern void maybe_push_cleanup_level (tree);
4768 extern tree pushtag (tree, tree, tag_scope);
4769 extern tree make_anon_name (void);
4770 extern tree pushdecl_top_level_maybe_friend (tree, bool);
4771 extern tree pushdecl_top_level_and_finish (tree, tree);
4772 extern tree check_for_out_of_scope_variable (tree);
4774 extern tree maybe_push_decl (tree);
4775 extern tree current_decl_namespace (void);
4778 extern tree poplevel (int, int, int);
4783 extern void push_switch (tree);
4785 extern tree make_lambda_name (void);
4786 extern int decls_match (tree, tree);
4787 extern tree duplicate_decls (tree, tree, bool);
4788 extern tree declare_local_label (tree);
4789 extern tree define_label (location_t, tree);
4790 extern void check_goto (tree);
4792 extern tree make_typename_type (tree, tree, enum tag_types, tsubst_flags_t);
4793 extern tree make_unbound_class_template (tree, tree, tree, tsubst_flags_t);
4794 extern tree build_library_fn_ptr (const char *, tree);
4795 extern tree build_cp_library_fn_ptr (const char *, tree);
4796 extern tree push_library_fn (tree, tree, tree);
4797 extern tree push_void_library_fn (tree, tree);
4798 extern tree push_throw_library_fn (tree, tree);
4799 extern tree check_tag_decl (cp_decl_specifier_seq *);
4800 extern tree shadow_tag (cp_decl_specifier_seq *);
4801 extern tree groktypename (cp_decl_specifier_seq *, const cp_declarator *, bool);
4802 extern tree start_decl (const cp_declarator *, cp_decl_specifier_seq *, int, tree, tree, tree *);
4803 extern void start_decl_1 (tree, bool);
4804 extern bool check_array_initializer (tree, tree, tree);
4805 extern void cp_finish_decl (tree, tree, bool, tree, int);
4806 extern int cp_complete_array_type (tree *, tree, bool);
4807 extern tree build_ptrmemfunc_type (tree);
4808 extern tree build_ptrmem_type (tree, tree);
4810 extern tree build_this_parm (tree, cp_cv_quals);
4813 extern tree get_scope_of_declarator (const cp_declarator *);
4814 extern void grok_special_member_properties (tree);
4816 extern bool grok_op_properties (tree, bool);
4817 extern tree xref_tag (enum tag_types, tree, tag_scope, bool);
4818 extern tree xref_tag_from_type (tree, tree, tag_scope);
4819 extern bool xref_basetypes (tree, tree);
4820 extern tree start_enum (tree, tree, tree, bool, bool *);
4821 extern void finish_enum_value_list (tree);
4822 extern void finish_enum (tree);
4823 extern void build_enumerator (tree, tree, tree, location_t);
4824 extern tree lookup_enumerator (tree, tree);
4825 extern void start_preparsed_function (tree, tree, int);
4826 extern int start_function (cp_decl_specifier_seq *, const cp_declarator *, tree);
4827 extern tree begin_function_body (void);
4828 extern void finish_function_body (tree);
4829 extern tree outer_curly_brace_block (tree);
4830 extern tree finish_function (int);
4831 extern tree grokmethod (cp_decl_specifier_seq *, const cp_declarator *, tree);
4832 extern void maybe_register_incomplete_var (tree);
4833 extern void maybe_commonize_var (tree);
4834 extern void complete_vars (tree);
4836 extern tree static_fn_type (tree);
4837 extern void revert_static_member_fn (tree);
4838 extern void fixup_anonymous_aggr (tree);
4839 extern int check_static_variable_definition (tree, tree);
4840 extern tree compute_array_index_type (tree, tree, tsubst_flags_t);
4841 extern tree check_default_argument (tree, tree);
4842 typedef int (*walk_namespaces_fn) (tree, void *);
4845 extern int wrapup_globals_for_namespace (tree, void *);
4846 extern tree create_implicit_typedef (tree, tree);
4848 extern tree register_dtor_fn (tree);
4850 extern tree cp_fname_init (const char *, tree *);
4851 extern tree cxx_builtin_function (tree decl);
4852 extern tree cxx_builtin_function_ext_scope (tree decl);
4853 extern tree check_elaborated_type_specifier (enum tag_types, tree, bool);
4854 extern void warn_extern_redeclared_static (tree, tree);
4855 extern tree cxx_comdat_group (tree);
4856 extern bool cp_missing_noreturn_ok_p (tree);
4857 extern void initialize_artificial_var (tree, VEC(constructor_elt,gc) *);
4858 extern tree check_var_type (tree, tree);
4859 extern tree reshape_init (tree, tree);
4860 extern tree next_initializable_field (tree);
4863 extern GTY(()) VEC(tree, gc) *deferred_mark_used_calls;
4864 extern tree finish_case_label (location_t, tree, tree);
4865 extern tree cxx_maybe_build_cleanup (tree);
4868 extern bool check_java_method (tree);
4869 extern tree build_memfn_type (tree, tree, cp_cv_quals);
4870 extern tree change_return_type (tree, tree);
4871 extern void maybe_retrofit_in_chrg (tree);
4872 extern void maybe_make_one_only (tree);
4873 extern bool vague_linkage_p (tree);
4874 extern void grokclassfn (tree, tree,
4876 extern tree grok_array_decl (tree, tree);
4877 extern tree delete_sanity (tree, tree, bool, int);
4878 extern tree check_classfn (tree, tree, tree);
4879 extern void check_member_template (tree);
4880 extern tree grokfield (const cp_declarator *, cp_decl_specifier_seq *,
4881 tree, bool, tree, tree);
4882 extern tree grokbitfield (const cp_declarator *, cp_decl_specifier_seq *,
4883 tree, tree);
4884 extern tree cp_reconstruct_complex_type (tree, tree);
4885 extern void cplus_decl_attributes (tree *, tree, int);
4886 extern void finish_anon_union (tree);
4891 extern tree coerce_new_type (tree);
4892 extern tree coerce_delete_type (tree);
4893 extern void comdat_linkage (tree);
4894 extern void determine_visibility (tree);
4895 extern void constrain_class_visibility (tree);
4896 extern void import_export_decl (tree);
4897 extern tree build_cleanup (tree);
4898 extern tree build_offset_ref_call_from_tree (tree, VEC(tree,gc) **);
4899 extern bool decl_constant_var_p (tree);
4900 extern bool decl_maybe_constant_var_p (tree);
4901 extern void check_default_args (tree);
4902 extern void mark_used (tree);
4903 extern void finish_static_data_member_decl (tree, tree, bool, tree, int);
4904 extern tree cp_build_parm_decl (tree, tree);
4905 extern tree get_guard (tree);
4906 extern tree get_guard_cond (tree);
4907 extern tree set_guard (tree);
4908 extern tree cxx_callgraph_analyze_expr (tree *, int *);
4909 extern void mark_needed (tree);
4910 extern bool decl_needed_p (tree);
4911 extern void note_vague_linkage_fn (tree);
4912 extern tree build_artificial_parm (tree, tree);
4913 extern bool possibly_inlined_p (tree);
4914 extern int parm_index (tree);
4918 extern const char *type_as_string (tree, int);
4919 extern const char *type_as_string_translate (tree, int);
4920 extern const char *decl_as_string (tree, int);
4921 extern const char *decl_as_string_translate (tree, int);
4922 extern const char *expr_as_string (tree, int);
4923 extern const char *lang_decl_name (tree, int, bool);
4925 extern const char *class_key_or_enum_as_string (tree);
4930 extern location_t location_of (tree);
4931 extern void qualified_name_lookup_error (tree, tree, tree,
4936 extern tree expand_start_catch_block (tree);
4938 extern tree build_exc_ptr (void);
4939 extern tree build_throw (tree);
4941 extern void check_handlers (tree);
4942 extern tree finish_noexcept_expr (tree, tsubst_flags_t);
4947 extern tree build_noexcept_spec (tree, int);
4949 extern tree eh_type_info (tree);
4950 extern tree begin_eh_spec_block (void);
4951 extern void finish_eh_spec_block (tree, tree);
4952 extern tree build_eh_type_type (tree);
4953 extern tree cp_protect_cleanup_actions (void);
4956 extern tree cplus_expand_constant (tree);
4957 extern tree mark_rvalue_use (tree);
4958 extern tree mark_lvalue_use (tree);
4959 extern tree mark_type_use (tree);
4960 extern void mark_exp_read (tree);
4963 extern int is_friend (tree, tree);
4964 extern void make_friend_class (tree, tree, bool);
4965 extern void add_friend (tree, tree, bool);
4966 extern tree do_friend (tree, tree, tree, tree, enum overload_flags, bool);
4969 extern tree expand_member_init (tree);
4970 extern void emit_mem_initializers (tree);
4971 extern tree build_aggr_init (tree, tree, int,
4973 extern int is_class_type (tree, int);
4974 extern tree get_type_value (tree);
4975 extern tree build_zero_init (tree, tree, bool);
4976 extern tree build_value_init (tree, tsubst_flags_t);
4977 extern tree build_value_init_noctor (tree, tsubst_flags_t);
4978 extern tree build_offset_ref (tree, tree, bool);
4979 extern tree build_new (VEC(tree,gc) **, tree, tree,
4980 VEC(tree,gc) **, int,
4982 extern tree get_temp_regvar (tree, tree);
4983 extern tree build_vec_init (tree, tree, tree, bool, int,
4985 extern tree build_delete (tree, tree,
4989 extern tree build_vec_delete (tree, tree,
4991 extern tree create_temporary_var (tree);
4992 extern void initialize_vtbl_ptrs (tree);
4993 extern tree build_java_class_ref (tree);
4994 extern tree integral_constant_value (tree);
4995 extern int diagnose_uninitialized_cst_or_ref_member (tree, bool, bool);
4998 extern void cxx_dup_lang_specific_decl (tree);
5001 extern tree unqualified_name_lookup_error (tree);
5002 extern tree unqualified_fn_lookup_error (tree);
5003 extern tree build_lang_decl (enum tree_code, tree, tree);
5004 extern tree build_lang_decl_loc (location_t, enum tree_code, tree, tree);
5005 extern void retrofit_lang_decl (tree);
5006 extern tree copy_decl (tree);
5007 extern tree copy_type (tree);
5008 extern tree cxx_make_type (enum tree_code);
5009 extern tree make_class_type (enum tree_code);
5016 extern tree make_thunk (tree, bool, tree, tree);
5017 extern void finish_thunk (tree);
5018 extern void use_thunk (tree, bool);
5019 extern bool trivial_fn_p (tree);
5020 extern bool maybe_explain_implicit_delete (tree);
5021 extern void synthesize_method (tree);
5022 extern tree lazily_declare_fn (special_function_kind,
5023 tree);
5024 extern tree skip_artificial_parms_for (const_tree, tree);
5026 extern tree make_alias_for (tree, tree);
5027 extern tree get_copy_ctor (tree, tsubst_flags_t);
5028 extern tree get_copy_assign (tree);
5029 extern tree get_default_ctor (tree);
5030 extern tree get_dtor (tree, tsubst_flags_t);
5031 extern tree locate_ctor (tree);
5034 extern bool maybe_clone_body (tree);
5037 extern bool check_template_shadow (tree);
5038 extern tree get_innermost_template_args (tree, int);
5039 extern void maybe_begin_member_template_processing (tree);
5041 extern tree finish_member_template_decl (tree);
5048 extern tree check_explicit_specialization (tree, tree, int, int);
5049 extern tree make_auto (void);
5050 extern tree do_auto_deduction (tree, tree, tree);
5051 extern tree type_uses_auto (tree);
5052 extern void append_type_to_template_for_access_check (tree, tree, tree,
5054 extern tree splice_late_return_type (tree, tree);
5056 extern tree process_template_parm (tree, location_t, tree,
5058 extern tree end_template_parm_list (tree);
5061 extern tree maybe_update_decl_type (tree, tree);
5062 extern bool check_default_tmpl_args (tree, tree, int, int, int);
5063 extern tree push_template_decl (tree);
5064 extern tree push_template_decl_real (tree, bool);
5065 extern bool redeclare_class_template (tree, tree);
5066 extern tree lookup_template_class (tree, tree, tree, tree,
5068 extern tree lookup_template_function (tree, tree);
5069 extern int uses_template_parms (tree);
5070 extern int uses_template_parms_level (tree, int);
5071 extern tree instantiate_class_template (tree);
5072 extern tree instantiate_template (tree, tree, tsubst_flags_t);
5073 extern int fn_type_unification (tree, tree, tree,
5074 const tree *, unsigned int,
5075 tree, unification_kind_t, int);
5076 extern void mark_decl_instantiated (tree, int);
5077 extern int more_specialized_fn (tree, tree, int);
5078 extern void do_decl_instantiation (tree, tree);
5079 extern void do_type_instantiation (tree, tree, tsubst_flags_t);
5080 extern bool always_instantiate_p (tree);
5081 extern tree instantiate_decl (tree, int, bool);
5083 extern bool uses_parameter_packs (tree);
5086 extern bool function_parameter_expanded_from_pack_p (tree, tree);
5087 extern tree make_pack_expansion (tree);
5088 extern bool check_for_bare_parameter_packs (tree);
5089 extern tree build_template_info (tree, tree);
5090 extern tree get_template_info (const_tree);
5091 extern VEC(qualified_typedef_usage_t,gc)* get_types_needing_access_check (tree);
5092 extern int template_class_depth (tree);
5093 extern int is_specialization_of (tree, tree);
5094 extern bool is_specialization_of_friend (tree, tree);
5095 extern tree get_pattern_parm (tree, tree);
5096 extern int comp_template_args (tree, tree);
5097 extern tree maybe_process_partial_specialization (tree);
5098 extern tree most_specialized_instantiation (tree);
5099 extern void print_candidates (tree);
5101 extern tree tsubst_default_argument (tree, tree, tree);
5102 extern tree tsubst (tree, tree, tsubst_flags_t, tree);
5103 extern tree tsubst_copy_and_build (tree, tree, tsubst_flags_t,
5104 tree, bool, bool);
5105 extern tree most_general_template (tree);
5106 extern tree get_mostly_instantiated_function_type (tree);
5110 extern tree maybe_get_template_decl_from_type_decl (tree);
5112 extern bool dependent_type_p (tree);
5113 extern bool dependent_scope_p (tree);
5115 extern bool dependent_template_p (tree);
5116 extern bool dependent_template_id_p (tree, tree);
5117 extern bool type_dependent_expression_p (tree);
5118 extern bool any_type_dependent_arguments_p (const VEC(tree,gc) *);
5119 extern bool type_dependent_expression_p_push (tree);
5120 extern bool value_dependent_expression_p (tree);
5122 extern bool dependent_omp_for_p (tree, tree, tree, tree);
5123 extern tree resolve_typename_type (tree, bool);
5124 extern tree template_for_substitution (tree);
5125 extern tree build_non_dependent_expr (tree);
5126 extern void make_args_non_dependent (VEC(tree,gc) *);
5127 extern bool reregister_specialization (tree, tree, tree);
5128 extern tree fold_non_dependent_expr (tree);
5129 extern bool explicit_class_specialization_p (tree);
5130 extern int push_tinst_level (tree);
5133 extern bool parameter_of_template_p (tree, tree);
5138 extern tree get_primary_template_innermost_parameters (const_tree);
5139 extern tree get_template_parms_at_level (tree, int);
5140 extern tree get_template_innermost_arguments (const_tree);
5141 extern tree get_template_argument_pack_elems (const_tree);
5142 extern tree get_function_template_decl (const_tree);
5143 extern tree resolve_nondeduced_context (tree);
5144 extern hashval_t iterative_hash_template_arg (tree arg, hashval_t val);
5148 extern int repo_emit_p (tree);
5154 extern GTY(()) VEC(tree,gc) *unemitted_tinfo_decls;
5157 extern tree build_typeid (tree);
5158 extern tree get_tinfo_decl (tree);
5159 extern tree get_typeid (tree);
5160 extern tree build_headof (tree);
5161 extern tree build_dynamic_cast (tree, tree, tsubst_flags_t);
5163 extern bool emit_tinfo_decl (tree);
5166 extern bool accessible_base_p (tree, tree, bool);
5167 extern tree lookup_base (tree, tree, base_access,
5169 extern tree dcast_base_hint (tree, tree);
5170 extern int accessible_p (tree, tree, bool);
5171 extern tree lookup_field_1 (tree, tree, bool);
5172 extern tree lookup_field (tree, tree, int, bool);
5173 extern int lookup_fnfields_1 (tree, tree);
5174 extern tree lookup_fnfields_slot (tree, tree);
5175 extern int class_method_index_for_fn (tree, tree);
5176 extern tree lookup_fnfields (tree, tree, int);
5177 extern tree lookup_member (tree, tree, int, bool);
5178 extern int look_for_overrides (tree, tree);
5179 extern void get_pure_virtuals (tree);
5180 extern void maybe_suppress_debug_info (tree);
5181 extern void note_debug_info_needed (tree);
5184 extern tree current_scope (void);
5188 extern tree context_for_name_lookup (tree);
5189 extern tree lookup_conversions (tree);
5190 extern tree binfo_from_vbase (tree);
5191 extern tree binfo_for_vbase (tree, tree);
5192 extern tree look_for_overrides_here (tree, tree);
5193 #define dfs_skip_bases ((tree)1)
5194 extern tree dfs_walk_all (tree, tree (*) (tree, void *),
5195 tree (*) (tree, void *), void *);
5196 extern tree dfs_walk_once (tree, tree (*) (tree, void *),
5197 tree (*) (tree, void *), void *);
5198 extern tree binfo_via_virtual (tree, tree);
5199 extern tree build_baselink (tree, tree, tree, tree);
5200 extern tree adjust_result_of_qualified_name_lookup
5201 (tree, tree, tree);
5202 extern tree copied_binfo (tree, tree);
5203 extern tree original_binfo (tree, tree);
5204 extern int shared_member_p (tree);
5211 tree binfo;
5213 tree decl;
5215 tree diag_decl;
5229 extern void perform_or_defer_access_check (tree, tree, tree);
5230 extern bool speculative_access_check (tree, tree, tree, bool);
5233 extern tree do_poplevel (tree);
5234 extern void add_decl_expr (tree);
5235 extern tree finish_expr_stmt (tree);
5236 extern tree begin_if_stmt (void);
5237 extern void finish_if_stmt_cond (tree, tree);
5238 extern tree finish_then_clause (tree);
5239 extern void begin_else_clause (tree);
5240 extern void finish_else_clause (tree);
5241 extern void finish_if_stmt (tree);
5242 extern tree begin_while_stmt (void);
5243 extern void finish_while_stmt_cond (tree, tree);
5244 extern void finish_while_stmt (tree);
5245 extern tree begin_do_stmt (void);
5246 extern void finish_do_body (tree);
5247 extern void finish_do_stmt (tree, tree);
5248 extern tree finish_return_stmt (tree);
5249 extern tree begin_for_scope (tree *);
5250 extern tree begin_for_stmt (tree, tree);
5251 extern void finish_for_init_stmt (tree);
5252 extern void finish_for_cond (tree, tree);
5253 extern void finish_for_expr (tree, tree);
5254 extern void finish_for_stmt (tree);
5255 extern tree begin_range_for_stmt (tree, tree);
5256 extern void finish_range_for_decl (tree, tree, tree);
5257 extern void finish_range_for_stmt (tree);
5258 extern tree finish_break_stmt (void);
5259 extern tree finish_continue_stmt (void);
5260 extern tree begin_switch_stmt (void);
5261 extern void finish_switch_cond (tree, tree);
5262 extern void finish_switch_stmt (tree);
5263 extern tree finish_goto_stmt (tree);
5264 extern tree begin_try_block (void);
5265 extern void finish_try_block (tree);
5266 extern void finish_handler_sequence (tree);
5267 extern tree begin_function_try_block (tree *);
5268 extern void finish_function_try_block (tree);
5269 extern void finish_function_handler_sequence (tree, tree);
5270 extern void finish_cleanup_try_block (tree);
5271 extern tree begin_handler (void);
5272 extern void finish_handler_parms (tree, tree);
5273 extern void finish_handler (tree);
5274 extern void finish_cleanup (tree, tree);
5275 extern bool literal_type_p (tree);
5276 extern tree validate_constexpr_fundecl (tree);
5277 extern tree register_constexpr_fundef (tree, tree);
5278 extern bool check_constexpr_ctor_body (tree, tree);
5279 extern tree ensure_literal_type_for_constexpr_object (tree);
5280 extern bool potential_constant_expression (tree);
5281 extern bool potential_rvalue_constant_expression (tree);
5282 extern bool require_potential_constant_expression (tree);
5283 extern bool require_potential_rvalue_constant_expression (tree);
5284 extern tree cxx_constant_value (tree);
5285 extern tree maybe_constant_value (tree);
5286 extern tree maybe_constant_init (tree);
5287 extern bool is_sub_constant_expr (tree);
5288 extern bool reduced_constant_expression_p (tree);
5289 extern VEC(tree,heap)* cx_error_context (void);
5296 extern tree begin_compound_stmt (unsigned int);
5298 extern void finish_compound_stmt (tree);
5299 extern tree finish_asm_stmt (int, tree, tree, tree, tree,
5300 tree);
5301 extern tree finish_label_stmt (tree);
5302 extern void finish_label_decl (tree);
5303 extern tree finish_parenthesized_expr (tree);
5304 extern tree finish_non_static_data_member (tree, tree, tree);
5305 extern tree begin_stmt_expr (void);
5306 extern tree finish_stmt_expr_expr (tree, tree);
5307 extern tree finish_stmt_expr (tree, bool);
5308 extern tree stmt_expr_value_expr (tree);
5309 bool empty_expr_stmt_p (tree);
5310 extern tree perform_koenig_lookup (tree, VEC(tree,gc) *, bool);
5311 extern tree finish_call_expr (tree, VEC(tree,gc) **, bool,
5313 extern tree finish_increment_expr (tree, enum tree_code);
5314 extern tree finish_this_expr (void);
5315 extern tree finish_pseudo_destructor_expr (tree, tree, tree);
5316 extern tree finish_unary_op_expr (enum tree_code, tree);
5317 extern treetree, tree);
5318 extern tree finish_fname (tree);
5320 extern tree finish_template_type_parm (tree, tree);
5321 extern tree finish_template_template_parm (tree, tree);
5322 extern tree begin_class_definition (tree, tree);
5323 extern void finish_template_decl (tree);
5324 extern tree finish_template_type (tree, tree, int);
5325 extern tree finish_base_specifier (tree, tree, bool);
5326 extern void finish_member_declaration (tree);
5327 extern tree finish_id_expression (tree, tree, tree,
5333 extern tree finish_typeof (tree);
5334 extern tree finish_offsetof (tree);
5335 extern void finish_decl_cleanup (tree, tree);
5336 extern void finish_eh_cleanup (tree);
5337 extern void emit_associated_thunks (tree);
5338 extern void finish_mem_initializers (tree);
5339 extern tree check_template_template_default_arg (tree);
5340 extern bool expand_or_defer_fn_1 (tree);
5341 extern void expand_or_defer_fn (tree);
5342 extern void add_typedef_to_current_template_for_access_check (tree, tree,
5344 extern void check_accessibility_of_qualified_id (tree, tree, tree);
5345 extern tree finish_qualified_id_expr (tree, tree, bool, bool,
5347 extern void simplify_aggr_init_expr (tree *);
5348 extern void finalize_nrv (tree *, tree, tree);
5349 extern void note_decl_for_pch (tree);
5350 extern tree finish_omp_clauses (tree);
5351 extern void finish_omp_threadprivate (tree);
5352 extern tree begin_omp_structured_block (void);
5353 extern tree finish_omp_structured_block (tree);
5354 extern tree begin_omp_parallel (void);
5355 extern tree finish_omp_parallel (tree, tree);
5356 extern tree begin_omp_task (void);
5357 extern tree finish_omp_task (tree, tree);
5358 extern tree finish_omp_for (location_t, tree, tree,
5359 tree, tree, tree, tree, tree);
5360 extern void finish_omp_atomic (enum tree_code, tree, tree);
5364 extern bool cxx_omp_create_clause_info (tree, tree, bool, bool, bool);
5365 extern tree baselink_for_fns (tree);
5366 extern void finish_static_assert (tree, tree, location_t,
5368 extern tree describable_type (tree);
5369 extern tree finish_decltype_type (tree, bool, tsubst_flags_t);
5370 extern tree finish_trait_expr (enum cp_trait_kind, tree, tree);
5371 extern tree build_lambda_expr (void);
5372 extern tree build_lambda_object (tree);
5373 extern tree begin_lambda_type (tree);
5374 extern tree lambda_capture_field_type (tree);
5375 extern tree lambda_return_type (tree);
5376 extern tree lambda_function (tree);
5377 extern void apply_lambda_return_type (tree, tree);
5378 extern tree add_capture (tree, tree, tree, bool, bool);
5379 extern tree add_default_capture (tree, tree, tree);
5380 extern void register_capture_members (tree);
5381 extern tree lambda_expr_this_capture (tree);
5382 extern tree nonlambda_method_basetype (void);
5383 extern void maybe_add_lambda_conv_op (tree);
5385 /* in tree.c */
5386 void cp_free_lang_data (tree t);
5387 extern tree force_target_expr (tree, tree);
5388 extern tree build_target_expr_with_type (tree, tree);
5391 extern tree stabilize_expr (tree, tree *);
5392 extern void stabilize_call (tree, tree *);
5393 extern void stabilize_aggr_init (tree, tree *);
5394 extern bool stabilize_init (tree, tree *);
5395 extern tree add_stmt_to_compound (tree, tree);
5406 extern tree strip_typedefs (tree);
5407 extern tree copy_binfo (tree, tree, tree,
5408 tree *, int);
5414 extern tree build_min (enum tree_code, tree, ...);
5415 extern tree build_min_nt (enum tree_code, ...);
5416 extern tree build_min_non_dep (enum tree_code, tree, ...);
5417 extern tree build_min_non_dep_call_vec (tree, tree, VEC(tree,gc) *);
5418 extern tree build_cplus_new (tree, tree);
5419 extern tree build_aggr_init_expr (tree, tree);
5420 extern tree get_target_expr (tree);
5421 extern tree build_cplus_array_type (tree, tree);
5422 extern tree build_array_of_n_type (tree, int);
5423 extern tree build_array_copy (tree);
5424 extern tree build_vec_init_expr (tree, tree);
5425 extern void diagnose_non_constexpr_vec_init (tree);
5426 extern tree hash_tree_cons (tree, tree, tree);
5427 extern tree hash_tree_chain (tree, tree);
5428 extern tree build_qualified_name (tree, tree, tree, bool);
5429 extern int is_overloaded_fn (tree);
5430 extern tree get_fns (tree);
5431 extern tree get_first_fn (tree);
5432 extern tree ovl_cons (tree, tree);
5433 extern tree build_overload (tree, tree);
5434 extern bool non_static_member_function_p (tree);
5435 extern const char *cxx_printable_name (tree, int);
5436 extern const char *cxx_printable_name_translate (tree, int);
5437 extern tree build_exception_variant (tree, tree);
5438 extern tree bind_template_template_parm (tree, tree);
5439 extern tree array_type_nelts_total (tree);
5440 extern tree array_type_nelts_top (tree);
5441 extern tree break_out_target_exprs (tree);
5442 extern tree get_type_decl (tree);
5443 extern tree decl_namespace_context (tree);
5445 extern tree lvalue_type (tree);
5446 extern tree error_type (tree);
5448 extern bool really_overloaded_fn (tree);
5449 extern bool cp_tree_equal (tree, tree);
5450 extern tree no_linkage_check (tree, bool);
5451 extern void debug_binfo (tree);
5452 extern tree build_dummy_object (tree);
5453 extern tree maybe_dummy_object (tree, tree *);
5456 extern tree make_ptrmem_cst (tree, tree);
5457 extern tree cp_build_type_attribute_variant (tree, tree);
5458 extern tree cp_build_reference_type (tree, bool);
5459 extern tree move (tree);
5460 extern tree cp_build_qualified_type_real (tree, int, tsubst_flags_t);
5464 extern tree cv_unqualified (tree);
5466 extern int count_trees (tree);
5467 extern int char_type_p (tree);
5468 extern void verify_stmt_tree (tree);
5469 extern linkage_kind decl_linkage (tree);
5470 extern duration_kind decl_storage_duration (tree);
5471 extern tree cp_walk_subtrees (tree*, int*, walk_tree_fn,
5477 extern tree fold_if_not_in_template (tree);
5478 extern tree rvalue (tree);
5479 extern tree convert_bitfield_to_declared_type (tree);
5480 extern tree cp_save_expr (tree);
5481 extern bool cast_valid_in_integral_constant_expression_p (tree);
5487 extern void cxx_print_xnode (FILE *, tree, int);
5488 extern void cxx_print_decl (FILE *, tree, int);
5489 extern void cxx_print_type (FILE *, tree, int);
5490 extern void cxx_print_identifier (FILE *, tree, int);
5496 extern bool cxx_mark_addressable (tree);
5498 extern tree cp_truthvalue_conversion (tree);
5499 extern tree condition_conversion (tree);
5500 extern tree require_complete_type (tree);
5501 extern tree require_complete_type_sfinae (tree, tsubst_flags_t);
5502 extern tree complete_type (tree);
5503 extern tree complete_type_or_else (tree, tree);
5504 extern tree complete_type_or_maybe_complain (tree, tree, tsubst_flags_t);
5508 extern bool comptypes (tree, tree, int);
5509 extern bool same_type_ignoring_top_level_qualifiers_p (tree, tree);
5512 extern int comp_cv_qual_signature (tree, tree);
5513 extern tree cxx_sizeof_or_alignof_expr (tree, enum tree_code, bool);
5514 extern tree cxx_sizeof_or_alignof_type (tree, enum tree_code, bool);
5515 extern tree cxx_sizeof_nowarn (tree);
5516 extern tree is_bitfield_expr_with_lowered_type (const_tree);
5517 extern tree unlowered_expr_type (const_tree);
5518 extern tree decay_conversion (tree);
5519 extern tree build_class_member_access_expr (tree, tree, tree, bool,
5521 extern tree finish_class_member_access_expr (tree, tree, bool,
5523 extern tree build_x_indirect_ref (tree, ref_operator,
5525 extern tree cp_build_indirect_ref (tree, ref_operator,
5527 extern tree build_array_ref (location_t, tree, tree);
5528 extern tree cp_build_array_ref (location_t, tree, tree,
5530 extern tree get_member_function_from_ptrfunc (tree *, tree);
5531 extern tree cp_build_function_call (tree, tree, tsubst_flags_t);
5532 extern tree cp_build_function_call_nary (tree, tsubst_flags_t, ...)
5534 extern tree cp_build_function_call_vec (tree, VEC(tree,gc) **,
5536 extern tree build_x_binary_op (enum tree_code, tree,
5537 enum tree_code, tree,
5540 extern tree build_x_array_ref (tree, tree, tsubst_flags_t);
5541 extern tree build_x_unary_op (enum tree_code, tree,
5543 extern tree cp_build_addr_expr (tree, tsubst_flags_t);
5544 extern tree cp_build_addr_expr_strict (tree, tsubst_flags_t);
5545 extern tree cp_build_unary_op (enum tree_code, tree, int,
5547 extern tree unary_complex_lvalue (enum tree_code, tree);
5548 extern tree build_x_conditional_expr (tree, tree, tree,
5550 extern tree build_x_compound_expr_from_list (tree, expr_list_kind,
5552 extern tree build_x_compound_expr_from_vec (VEC(tree,gc) *, const char *);
5553 extern tree build_x_compound_expr (tree, tree, tsubst_flags_t);
5554 extern tree build_compound_expr (location_t, tree, tree);
5555 extern tree cp_build_compound_expr (tree, tree, tsubst_flags_t);
5556 extern tree build_static_cast (tree, tree, tsubst_flags_t);
5557 extern tree build_reinterpret_cast (tree, tree, tsubst_flags_t);
5558 extern tree build_const_cast (tree, tree, tsubst_flags_t);
5559 extern tree build_c_cast (location_t, tree, tree);
5560 extern tree cp_build_c_cast (tree, tree, tsubst_flags_t);
5561 extern tree build_x_modify_expr (tree, enum tree_code, tree,
5563 extern tree cp_build_modify_expr (tree, enum tree_code, tree,
5565 extern tree convert_for_initialization (tree, tree, tree, int,
5566 impl_conv_rhs, tree, int,
5568 extern int comp_ptr_ttypes (tree, tree);
5569 extern bool comp_ptr_ttypes_const (tree, tree);
5572 extern tree build_ptrmemfunc (tree, tree, int, bool,
5576 extern tree apply_memfn_quals (tree, cp_cv_quals);
5579 extern void cp_apply_type_quals_to_decl (int, tree);
5580 extern tree build_ptrmemfunc1 (tree, tree, tree);
5581 extern void expand_ptrmemfunc_cst (tree, tree *, tree *);
5582 extern tree type_after_usual_arithmetic_conversions (tree, tree);
5583 extern tree common_pointer_type (tree, tree);
5584 extern tree composite_pointer_type (tree, tree, tree, tree,
5587 extern tree merge_types (tree, tree);
5588 extern tree strip_array_domain (tree);
5589 extern tree check_return_expr (tree, bool *);
5590 extern tree cp_build_binary_op (location_t,
5591 enum tree_code, tree, tree,
5594 extern tree build_ptrmemfunc_access_expr (tree, tree);
5595 extern tree build_address (tree);
5596 extern tree build_typed_address (tree, tree);
5597 extern tree build_nop (tree, tree);
5598 extern tree non_reference (tree);
5599 extern tree lookup_anon_field (tree, tree);
5601 extern tree convert_member_func_to_ptr (tree, tree);
5602 extern tree convert_ptrmem (tree, tree, bool, bool,
5604 extern int lvalue_or_else (tree, enum lvalue_use,
5606 extern void check_template_keyword (tree);
5609 extern void require_complete_eh_spec_types (tree, tree);
5615 extern tree error_not_base_type (tree, tree);
5616 extern tree binfo_or_else (tree, tree);
5617 extern void cxx_readonly_error (tree, enum lvalue_use);
5618 extern void complete_type_check_abstract (tree);
5619 extern int abstract_virtuals_error (tree, tree);
5621 extern tree store_init_value (tree, tree, int);
5622 extern void check_narrowing (tree, tree);
5623 extern tree digest_init (tree, tree);
5624 extern tree digest_init_flags (tree, tree, int);
5625 extern tree build_scoped_ref (tree, tree, tree *);
5626 extern tree build_x_arrow (tree);
5627 extern tree build_m_component_ref (tree, tree);
5628 extern tree build_functional_cast (tree, tree, tsubst_flags_t);
5629 extern tree add_exception_specifier (tree, tree, int);
5630 extern tree merge_exception_specifiers (tree, tree);
5634 extern void mangle_decl (tree);
5635 extern const char *mangle_type_string (tree);
5636 extern tree mangle_typeinfo_for_type (tree);
5637 extern tree mangle_typeinfo_string_for_type (tree);
5638 extern tree mangle_vtbl_for_type (tree);
5639 extern tree mangle_vtt_for_type (tree);
5640 extern tree mangle_ctor_vtbl_for_type (tree, tree);
5641 extern tree mangle_thunk (tree, int, tree, tree);
5642 extern tree mangle_conv_op_name_for_type (tree);
5643 extern tree mangle_guard_variable (tree);
5644 extern tree mangle_ref_init_variable (tree);
5647 extern bool cp_dump_tree (void *, tree);
5651 extern alias_set_type cxx_get_alias_set (tree);
5654 extern bool cp_var_mod_type_p (tree, tree);
5656 extern int cxx_types_compatible_p (tree, tree);
5660 extern bool cp_is_compiler_generated_type (tree);
5661 extern void cp_clear_global_name_bindings (tree);
5663 cp_is_non_sharable_global_decl (tree, void *);
5664 extern void cp_lipo_dup_lang_type (tree, tree);
5665 tree, tree);
5666 extern int cp_get_lang_decl_size (tree);
5667 extern int cp_cmp_lang_type (tree, tree);
5668 extern void cp_add_built_in_decl (tree);
5676 extern int cp_gimplify_expr (tree *, gimple_seq *,
5678 extern void cp_genericize (tree);
5679 extern enum omp_clause_default_kind cxx_omp_predetermined_sharing (tree);
5680 extern tree cxx_omp_clause_default_ctor (tree, tree, tree);
5681 extern tree cxx_omp_clause_copy_ctor (tree, tree, tree);
5682 extern tree cxx_omp_clause_assign_op (tree, tree, tree);
5683 extern tree cxx_omp_clause_dtor (tree, tree);
5684 extern void cxx_omp_finish_clause (tree);
5688 extern void suggest_alternatives_for (location_t, tree);