📄 tree.h
字号:
extern tree substitute_in_expr PROTO((tree, tree, tree));/* Given a type T, a FIELD_DECL F, and a replacement value R, return a new type with all size expressions that contain F updated by replacing the reference to F with R. */extern tree substitute_in_type 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 *));/* 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. */extern char *(*decl_printable_name) ();/* 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_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 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, 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, HOST_WIDE_INT, int, HOST_WIDE_INT *, HOST_WIDE_INT *, int));extern void rshift_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT, HOST_WIDE_INT, int, HOST_WIDE_INT *, HOST_WIDE_INT *, int));extern void lrotate_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT, HOST_WIDE_INT, int, HOST_WIDE_INT *, HOST_WIDE_INT *));extern void rrotate_double PROTO((HOST_WIDE_INT, HOST_WIDE_INT, HOST_WIDE_INT, int, HOST_WIDE_INT *, HOST_WIDE_INT *));extern int operand_equal_p PROTO((tree, tree, int));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 to identify which front-end produced the output file. */extern char *lang_identify PROTO((void));/* Function to replace the DECL_LANG_SPECIFIC field of a DECL with a copy. */extern void copy_lang_decl PROTO((tree));/* 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));extern tree build_range_type PROTO((tree, tree, tree));/* Call when starting to parse a declaration: make expressions in the declaration last the length of the function. Returns an argument that should be passed to resume_momentary later. */extern int suspend_momentary PROTO((void));extern int allocation_temporary_p PROTO((void));/* Call when finished parsing a declaration: restore the treatment of node-allocation that was in effect before the suspension. YES should be the value previously returned by suspend_momentary. */extern void resume_momentary PROTO((int));/* Called after finishing a record, union or enumeral type. */extern void rest_of_type_compilation PROTO((tree, int));/* Save the current set of obstacks, but don't change them. */extern void push_obstacks_nochange PROTO((void));extern void permanent_allocation PROTO((int));extern void push_momentary PROTO((void));extern void clear_momentary PROTO((void));extern void pop_momentary PROTO((void));extern void end_temporary_allocation PROTO((void));/* Pop the obstack selection stack. */extern void pop_obstacks PROTO((void));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -