⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.h

📁 GCC编译器源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
extern tree sizetype;/* If nonzero, an upper limit on alignment of structure fields, in bits. */extern int maximum_field_alignment;/* If non-zero, the alignment of a bitstring or (power-)set value, in bits. */extern int set_alignment;/* Concatenate two lists (chains of TREE_LIST nodes) X and Y   by making the last node in X point to Y.   Returns X, except if X is 0 returns Y.  */extern tree chainon			PROTO((tree, tree));/* Make a new TREE_LIST node from specified PURPOSE, VALUE and CHAIN.  */extern tree tree_cons			PROTO((tree, tree, tree));extern tree perm_tree_cons		PROTO((tree, tree, tree));extern tree temp_tree_cons		PROTO((tree, tree, tree));extern tree saveable_tree_cons		PROTO((tree, tree, tree));extern tree decl_tree_cons		PROTO((tree, tree, tree));extern tree expr_tree_cons		PROTO((tree, tree, tree));/* Return the last tree node in a chain.  */extern tree tree_last			PROTO((tree));/* Reverse the order of elements in a chain, and return the new head.  */extern tree nreverse			PROTO((tree));/* Returns the length of a chain of nodes   (number of chain pointers to follow before reaching a null pointer).  */extern int list_length			PROTO((tree));/* integer_zerop (tree x) is nonzero if X is an integer constant of value 0 */extern int integer_zerop		PROTO((tree));/* integer_onep (tree x) is nonzero if X is an integer constant of value 1 */extern int integer_onep			PROTO((tree));/* integer_all_onesp (tree x) is nonzero if X is an integer constant   all of whose significant bits are 1.  */extern int integer_all_onesp		PROTO((tree));/* integer_pow2p (tree x) is nonzero is X is an integer constant with   exactly one bit 1.  */extern int integer_pow2p		PROTO((tree));/* staticp (tree x) is nonzero if X is a reference to data allocated   at a fixed address in memory.  */extern int staticp			PROTO((tree));/* Gets an error if argument X is not an lvalue.   Also returns 1 if X is an lvalue, 0 if not.  */extern int lvalue_or_else		PROTO((tree, char *));/* save_expr (EXP) returns an expression equivalent to EXP   but it can be used multiple times within context CTX   and only evaluate EXP once.  */extern tree save_expr			PROTO((tree));/* unsave_expr (EXP) returns an expression equivalent to EXP but it   can be used multiple times and will evaluate EXP, in it's entirety   each time.  */extern tree unsave_expr			PROTO((tree));/* unsave_expr_now (EXP) resets EXP in place, so that it can be   expanded again.  */extern tree unsave_expr_now		PROTO((tree));/* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size   or offset that depends on a field within a record.   Note that we only allow such expressions within simple arithmetic   or a COND_EXPR.  */extern int contains_placeholder_p	PROTO((tree));/* Given a tree EXP, a FIELD_DECL F, and a replacement value R,   return a tree with all occurrences of references to F in a   PLACEHOLDER_EXPR replaced by R.   Note that we assume here that EXP   contains only arithmetic expressions.  */extern tree substitute_in_expr		PROTO((tree, tree, tree));/* variable_size (EXP) is like save_expr (EXP) except that it   is for the special case of something that is part of a   variable size for a data type.  It makes special arrangements   to compute the value at the right time when the data type   belongs to a function parameter.  */extern tree variable_size		PROTO((tree));/* stabilize_reference (EXP) returns an reference equivalent to EXP   but it can be used multiple times   and only evaluate the subexpressions once.  */extern tree stabilize_reference		PROTO((tree));/* Subroutine of stabilize_reference; this is called for subtrees of   references.  Any expression with side-effects must be put in a SAVE_EXPR   to ensure that it is only evaluated once.  */extern tree stabilize_reference_1	PROTO((tree));/* Return EXP, stripped of any conversions to wider types   in such a way that the result of converting to type FOR_TYPE   is the same as if EXP were converted to FOR_TYPE.   If FOR_TYPE is 0, it signifies EXP's type.  */extern tree get_unwidened		PROTO((tree, tree));/* Return OP or a simpler expression for a narrower value   which can be sign-extended or zero-extended to give back OP.   Store in *UNSIGNEDP_PTR either 1 if the value should be zero-extended   or 0 if the value should be sign-extended.  */extern tree get_narrower		PROTO((tree, int *));/* Given MODE and UNSIGNEDP, return a suitable type-tree   with that mode.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree type_for_mode		PROTO((enum machine_mode, int));/* Given PRECISION and UNSIGNEDP, return a suitable type-tree   for an integer type with at least that precision.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree type_for_size		PROTO((unsigned, int));/* Given an integer type T, return a type like T but unsigned.   If T is unsigned, the value is T.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree unsigned_type		PROTO((tree));/* Given an integer type T, return a type like T but signed.   If T is signed, the value is T.   The definition of this resides in language-specific code   as the repertoire of available types may vary.  */extern tree signed_type			PROTO((tree));/* This function must be defined in the language-specific files.   expand_expr calls it to build the cleanup-expression for a TARGET_EXPR.   This is defined in a language-specific file.  */extern tree maybe_build_cleanup		PROTO((tree));/* Given an expression EXP that may be a COMPONENT_REF or an ARRAY_REF,   look for nested component-refs or array-refs at constant positions   and find the ultimate containing object, which is returned.  */extern tree get_inner_reference		PROTO((tree, int *, int *, tree *,					       enum machine_mode *, int *,					       int *, int *));/* Return the FUNCTION_DECL which provides this _DECL with its context,   or zero if none.  */extern tree decl_function_context 	PROTO((tree));/* Return the RECORD_TYPE, UNION_TYPE, or QUAL_UNION_TYPE which provides   this _DECL with its context, or zero if none.  */extern tree decl_type_context		PROTO((tree));/* Given the FUNCTION_DECL for the current function,   return zero if it is ok for this function to be inline.   Otherwise return a warning message with a single %s   for the function's name.  */extern char *function_cannot_inline_p 	PROTO((tree));/* Return 1 if EXPR is the real constant zero.  */extern int real_zerop PROTO((tree));/* Declare commonly used variables for tree structure.  *//* An integer constant with value 0 */extern tree integer_zero_node;/* An integer constant with value 1 */extern tree integer_one_node;/* An integer constant with value 0 whose type is sizetype.  */extern tree size_zero_node;/* An integer constant with value 1 whose type is sizetype.  */extern tree size_one_node;/* A constant of type pointer-to-int and value 0 */extern tree null_pointer_node;/* A node of type ERROR_MARK.  */extern tree error_mark_node;/* The type node for the void type.  */extern tree void_type_node;/* The type node for the ordinary (signed) integer type.  */extern tree integer_type_node;/* The type node for the unsigned integer type.  */extern tree unsigned_type_node;/* The type node for the ordinary character type.  */extern tree char_type_node;/* Points to the name of the input file from which the current input   being parsed originally came (before it went into cpp).  */extern char *input_filename;/* Current line number in input file.  */extern int lineno;/* Nonzero for -pedantic switch: warn about anything   that standard C forbids.  */extern int pedantic;/* Nonzero means lvalues are limited to those valid in pedantic ANSI C.   Zero means allow extended lvalues.  */extern int pedantic_lvalues;/* Nonzero means can safely call expand_expr now;   otherwise layout_type puts variable sizes onto `pending_sizes' instead.  */extern int immediate_size_expand;/* Points to the FUNCTION_DECL of the function whose body we are reading. */extern tree current_function_decl;/* Nonzero if function being compiled can call setjmp.  */extern int current_function_calls_setjmp;/* Nonzero if function being compiled can call longjmp.  */extern int current_function_calls_longjmp;/* Nonzero means all ..._TYPE nodes should be allocated permanently.  */extern int all_types_permanent;/* Pointer to function to compute the name to use to print a declaration.   DECL is the declaration in question.   VERBOSITY determines what information will be printed:     0: DECL_NAME, demangled as necessary.     1: and scope information.     2: and any other information that might be interesting, such as function        parameter types in C++.  */extern char *(*decl_printable_name) (/* tree decl, int verbosity */);/* Pointer to function to finish handling an incomplete decl at the   end of compilation.  */extern void (*incomplete_decl_finalize_hook) ();/* In tree.c */extern char *perm_calloc			PROTO((int, long));extern tree get_file_function_name		PROTO((int));extern tree get_set_constructor_bits		PROTO((tree, char *, int));extern tree get_set_constructor_bytes		PROTO((tree,						       unsigned char *, int));/* In stmt.c */extern void expand_fixups			PROTO((struct rtx_def *));extern tree expand_start_stmt_expr		PROTO((void));extern tree expand_end_stmt_expr		PROTO((tree));extern void expand_expr_stmt			PROTO((tree));extern int warn_if_unused_value			PROTO((tree));extern void expand_decl_init			PROTO((tree));extern void clear_last_expr			PROTO((void));extern void expand_label			PROTO((tree));extern void expand_goto				PROTO((tree));extern void expand_asm				PROTO((tree));extern void expand_start_cond			PROTO((tree, int));extern void expand_end_cond			PROTO((void));extern void expand_start_else			PROTO((void));extern void expand_start_elseif			PROTO((tree));extern struct nesting *expand_start_loop 	PROTO((int));extern struct nesting *expand_start_loop_continue_elsewhere 	PROTO((int));extern void expand_loop_continue_here		PROTO((void));extern void expand_end_loop			PROTO((void));extern int expand_continue_loop			PROTO((struct nesting *));extern int expand_exit_loop			PROTO((struct nesting *));extern int expand_exit_loop_if_false		PROTO((struct nesting *,						       tree));extern int expand_exit_something		PROTO((void));extern void expand_null_return			PROTO((void));extern void expand_return			PROTO((tree));extern void expand_start_bindings		PROTO((int));extern void expand_end_bindings			PROTO((tree, int, int));extern void start_cleanup_deferral		PROTO((void));extern void end_cleanup_deferral		PROTO((void));extern void mark_block_as_eh_region		PROTO((void));extern void mark_block_as_not_eh_region		PROTO((void));extern int is_eh_region				PROTO((void));extern int conditional_context			PROTO((void));extern tree last_cleanup_this_contour		PROTO((void));extern int expand_dhc_cleanup			PROTO((tree));extern int expand_dcc_cleanup			PROTO((tree));extern void expand_start_case			PROTO((int, tree, tree,						       char *));extern void expand_end_case			PROTO((tree));extern int pushcase				PROTO((tree,						       tree (*) (tree, tree),						       tree, tree *));extern int pushcase_range			PROTO((tree, tree,						       tree (*) (tree, tree),						       tree, tree *));/* In fold-const.c *//* Fold constants as much as possible in an expression.   Returns the simplified expression.   Acts only on the top level of the expression;   if the argument itself cannot be simplified, its   subexpressions are not changed.  */extern tree fold		PROTO((tree));extern int force_fit_type	PROTO((tree, int));extern int add_double		PROTO((HOST_WIDE_INT, HOST_WIDE_INT,				       HOST_WIDE_INT, HOST_WIDE_INT,				       HOST_WIDE_INT *, HOST_WIDE_INT *));extern int neg_double		PROTO((HOST_WIDE_INT, HOST_WIDE_INT,				       HOST_WIDE_INT *, HOST_WIDE_INT *));extern int mul_double		PROTO((HOST_WIDE_INT, HOST_WIDE_INT,				       HOST_WIDE_INT, HOST_WIDE_INT,				       HOST_WIDE_INT *, HOST_WIDE_INT *));extern void lshift_double	PROTO((HOST_WIDE_INT, HOST_WIDE_INT,				       HOS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -