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

📄 tree.h

📁 早期freebsd实现
💻 H
📖 第 1 页 / 共 4 页
字号:
   put the prototype here.  Rtl.h does declare the prototype if   tree.h had been included.  */extern tree make_tree ();/* 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		PROTO((tree, int, int));/* Make a copy of a type node.  */extern tree build_type_copy		PROTO((tree));/* 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			PROTO((tree));/* 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		PROTO((int, tree));/* 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			PROTO((tree, unsigned));/* 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));/* Return an expr equal to X but certainly not valid as an lvalue.  */extern tree non_lvalue			PROTO((tree));extern tree convert			PROTO((tree, tree));extern tree size_in_bytes		PROTO((tree));extern int int_size_in_bytes		PROTO((tree));extern tree size_binop			PROTO((enum tree_code, tree, tree));extern tree size_int			PROTO((unsigned));extern tree round_up			PROTO((tree, int));extern tree get_pending_sizes		PROTO((void));/* 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			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));/* 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));/* 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));/* 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 *));/* 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 or 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));/* 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 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.  */extern char *(*decl_printable_name) ();/* In tree.c */extern char *perm_calloc			PROTO((int, long));/* In stmt.c */extern tree expand_start_stmt_expr		PROTO((void));extern tree expand_end_stmt_expr		PROTO((tree));extern void expand_expr_stmt			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 tree last_cleanup_this_contour		PROTO((void));extern void expand_start_case			PROTO((int, tree, tree, char *));extern void expand_end_case			PROTO((tree));extern int pushcase				PROTO((tree, tree, tree *));extern int pushcase_range			PROTO((tree, tree, tree, tree *));/* In fold-const.c */extern tree invert_truthvalue			PROTO((tree));/* The language front-end must define these functions.  *//* Function of no arguments for initializing lexical scanning.  */extern void init_lex				PROTO((void));/* Function of no arguments for initializing the symbol table.  */extern void init_decl_processing		PROTO((void));/* Functions called with no arguments at the beginning and end or processing   the input source file.  */extern void lang_init				PROTO((void));extern void lang_finish				PROTO((void));/* Function called with no arguments to parse and compile the input.  */extern int yyparse				PROTO((void));/* Function called with option as argument   to decode options starting with -f or -W or +.   It should return nonzero if it handles the option.  */extern int lang_decode_option			PROTO((char *));/* Functions for processing symbol declarations.  *//* Function to enter a new lexical scope.   Takes one argument: always zero when called from outside the front end.  */extern void pushlevel				PROTO((int));/* Function to exit a lexical scope.  It returns a BINDING for that scope.   Takes three arguments:     KEEP -- nonzero if there were declarations in this scope.     REVERSE -- reverse the order of decls before returning them.     FUNCTIONBODY -- nonzero if this level is the body of a function.  */extern tree poplevel				PROTO((int, int, int));/* Set the BLOCK node for the current scope level.  */extern void set_block				PROTO((tree));/* Function to add a decl to the current scope level.   Takes one argument, a decl to add.   Returns that decl, or, if the same symbol is already declared, may   return a different decl for that name.  */extern tree pushdecl				PROTO((tree));/* Function to return the chain of decls so far in the current scope level.  */extern tree getdecls				PROTO((void));/* Function to return the chain of structure tags in the current scope level.  */extern tree gettags				PROTO((void));

⌨️ 快捷键说明

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