📄 tree.h
字号:
to zero except for a few of the common fields. */extern tree make_node ();/* Make a copy of a node, with all the same contents except for TREE_UID and TREE_PERMANENT. (The copy is permanent iff nodes being made now are permanent.) */extern tree copy_node ();/* Make a copy of a chain of TREE_LIST nodes. */extern tree copy_list ();/* Return the (unique) IDENTIFIER_NODE node for a given name. The name is supplied as a char *. */extern tree get_identifier ();/* Construct various types of nodes. */extern tree build_int_2 ();extern tree build_real ();extern tree build_real_from_string ();extern tree build_real_from_int_cst ();extern tree build_complex ();extern tree build_string ();extern tree build ();extern tree build_nt ();extern tree build_tree_list ();extern tree build_op_identifier ();extern tree build_decl ();extern tree build_let ();/* Construct various nodes representing data types. */extern tree make_signed_type ();extern tree make_unsigned_type ();extern void fixup_unsigned_type ();extern tree build_pointer_type ();extern tree build_reference_type ();extern tree build_index_type ();extern tree build_array_type ();extern tree build_function_type ();extern tree build_method_type ();extern tree build_offset_type ();extern tree array_type_nelts ();/* Construct expressions, performing type checking. */extern tree build_binary_op ();extern tree build_indirect_ref ();extern tree build_unary_op ();/* Given a type node TYPE, and CONSTP and VOLATILEP, return a type for the same kind of data as TYPE describes. Variants point to the "main variant" (which has neither CONST nor VOLATILE) via TYPE_MAIN_VARIANT, and it points to a chain of other variants so that duplicate variants are never made. Only main variants should ever appear as types of expressions. */extern tree build_type_variant ();/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_ALIGN and TYPE_MODE fields. If called more than once on one node, does nothing except for the first time. */extern void layout_type ();/* Given a hashcode and a ..._TYPE node (for which the hashcode was made), return a canonicalized ..._TYPE node, so that duplicates are not made. How the hash code is computed is up to the caller, as long as any two callers that could hash identical-looking type nodes agree. */extern tree type_hash_canon ();/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node, calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE fields. Call this only once for any given decl node. Second argument is the boundary that this field can be assumed to be starting at (in bits). Zero means it can be assumed aligned on any boundary that may be needed. */extern void layout_decl ();/* 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 ();/* combine (tree_code, exp1, exp2) where EXP1 and EXP2 are constants returns a constant expression for the result of performing the operation specified by TREE_CODE on EXP1 and EXP2. */extern tree combine ();extern tree convert ();extern tree convert_units ();extern tree size_in_bytes ();extern tree genop ();extern tree build_int ();extern tree get_pending_sizes ();/* Type for sizes of data-type. */extern tree sizetype;/* 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 ();/* Make a new TREE_LIST node from specified PURPOSE, VALUE and CHAIN. */extern tree tree_cons (), perm_tree_cons (), temp_tree_cons ();extern tree saveable_tree_cons ();/* Return the last tree node in a chain. */extern tree tree_last ();/* Reverse the order of elements in a chain, and return the new head. */extern tree nreverse ();/* Returns the length of a chain of nodes (number of chain pointers to follow before reaching a null pointer). */extern int list_length ();/* integer_zerop (tree x) is nonzero if X is an integer constant of value 0 */extern int integer_zerop ();/* integer_onep (tree x) is nonzero if X is an integer constant of value 1 */extern int integer_onep ();/* 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 ();/* type_unsigned_p (tree x) is nonzero if the type X is an unsigned type (all of its possible values are >= 0). If X is a pointer type, the value is 1. If X is a real type, the value is 0. */extern int type_unsigned_p ();/* staticp (tree x) is nonzero if X is a reference to data allocated at a fixed address in memory. */extern int staticp ();/* 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 ();/* 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 ();/* 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 ();/* 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 ();/* 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 ();/* 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 ();/* 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 ();/* 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 ();/* Return the floating type node for a given floating machine mode. */extern tree get_floating_type ();/* 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 ();/* 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 source line number in that file. */extern int lineno;/* Nonzero for -pedantic switch: warn about anything that standard C forbids. */extern int pedantic;/* 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 means all ..._TYPE nodes should be allocated permanently. */extern int all_types_permanent;/* In stmt.c */extern tree expand_start_stmt_expr ();extern tree expand_end_stmt_expr ();extern void expand_expr_stmt (), clear_last_expr ();extern void expand_label (), expand_goto (), expand_asm ();extern void expand_start_cond (), expand_end_cond ();extern void expand_start_else (), expand_end_else ();extern void expand_start_loop (), expand_start_loop_continue_elsewhere ();extern void expand_loop_continue_here ();extern void expand_end_loop ();extern int expand_continue_loop ();extern int expand_exit_loop (), expand_exit_loop_if_false ();extern int expand_exit_something ();extern void expand_start_delayed_expr ();extern tree expand_end_delayed_expr ();extern void expand_emit_delayed_expr ();extern void expand_null_return (), expand_return ();extern void expand_start_bindings (), expand_end_bindings ();extern void expand_start_case (), expand_end_case ();extern int pushcase (), pushcase_range ();extern void expand_start_function (), expand_end_function ();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -