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

📄 tree.h

📁 GUN开源阻止下的编译器GCC
💻 H
📖 第 1 页 / 共 5 页
字号:
    enum built_in_function f;  } frame_size;  /* For FUNCTION_DECLs: points to insn that constitutes its definition     on the permanent obstack.  For any other kind of decl, this is the     alignment.  */  union {    struct rtx_def *r;    int i;  } saved_insns;  union tree_node *vindex;  /* Points to a structure whose details depend on the language in use.  */  struct lang_decl *lang_specific;};/* Define the overall contents of a tree node.   It may be any of the structures declared above   for various types of node.  */union tree_node{  struct tree_common common;  struct tree_int_cst int_cst;  struct tree_real_cst real_cst;  struct tree_string string;  struct tree_complex complex;  struct tree_identifier identifier;  struct tree_decl decl;  struct tree_type type;  struct tree_list list;  struct tree_vec vec;  struct tree_exp exp;  struct tree_block block; };/* Add prototype support.  */#ifndef PROTO#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)#define PROTO(ARGS) ARGS#else#define PROTO(ARGS) ()#endif#endif#ifndef VPROTO#ifdef __STDC__#define PVPROTO(ARGS)		ARGS#define VPROTO(ARGS)            ARGS#define VA_START(va_list,var)  va_start(va_list,var)#else#define PVPROTO(ARGS)		()#define VPROTO(ARGS)            (va_alist) va_dcl#define VA_START(va_list,var)  va_start(va_list)#endif#endif#ifndef STDIO_PROTO#ifdef BUFSIZ#define STDIO_PROTO(ARGS) PROTO(ARGS)#else#define STDIO_PROTO(ARGS) ()#endif#endif#define NULL_TREE (tree) NULL/* Define a generic NULL if one hasn't already been defined.  */#ifndef NULL#define NULL 0#endif#ifndef GENERIC_PTR#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)#define GENERIC_PTR void *#else#define GENERIC_PTR char *#endif#endif#ifndef NULL_PTR#define NULL_PTR ((GENERIC_PTR)0)#endif/* The following functions accept a wide integer argument.  Rather than   having to cast on every function call, we use a macro instead, that is   defined here and in rtl.h.  */#ifndef exact_log2#define exact_log2(N) exact_log2_wide ((HOST_WIDE_INT) (N))#define floor_log2(N) floor_log2_wide ((HOST_WIDE_INT) (N))#endif#if 0/* At present, don't prototype xrealloc, since all of the callers don't   cast their pointers to char *, and all of the xrealloc's don't use   void * yet.  */extern char *xmalloc			PROTO((size_t));extern char *xrealloc			PROTO((void *, size_t));#elseextern char *xmalloc ();extern char *xrealloc ();#endifextern char *oballoc			PROTO((int));extern char *permalloc			PROTO((int));extern char *savealloc			PROTO((int));extern void free			PROTO((void *));/* Lowest level primitive for allocating a node.   The TREE_CODE is the only argument.  Contents are initialized   to zero except for a few of the common fields.  */extern tree make_node			PROTO((enum tree_code));/* Make a copy of a node, with all the same contents except   for TREE_PERMANENT.  (The copy is permanent   iff nodes being made now are permanent.)  */extern tree copy_node			PROTO((tree));/* Make a copy of a chain of TREE_LIST nodes.  */extern tree copy_list			PROTO((tree));/* Make a TREE_VEC.  */extern tree make_tree_vec		PROTO((int));/* Return the (unique) IDENTIFIER_NODE node for a given name.   The name is supplied as a char *.  */extern tree get_identifier		PROTO((char *));/* Construct various types of nodes.  */#define build_int_2(LO,HI)  \  build_int_2_wide ((HOST_WIDE_INT) (LO), (HOST_WIDE_INT) (HI))extern tree build			PVPROTO((enum tree_code, tree, ...));extern tree build_nt			PVPROTO((enum tree_code, ...));extern tree build_parse_node		PVPROTO((enum tree_code, ...));extern tree build_int_2_wide		PROTO((HOST_WIDE_INT, HOST_WIDE_INT));extern tree build_real			PROTO((tree, REAL_VALUE_TYPE));extern tree build_real_from_int_cst 	PROTO((tree, tree));extern tree build_complex		PROTO((tree, tree));extern tree build_string		PROTO((int, char *));extern tree build1			PROTO((enum tree_code, tree, tree));extern tree build_tree_list		PROTO((tree, tree));extern tree build_decl_list		PROTO((tree, tree));extern tree build_decl			PROTO((enum tree_code, tree, tree));extern tree build_block			PROTO((tree, tree, tree, tree, tree));/* Construct various nodes representing data types.  */extern tree make_signed_type		PROTO((int));extern tree make_unsigned_type		PROTO((int));extern tree signed_or_unsigned_type 	PROTO((int, tree));extern void fixup_unsigned_type		PROTO((tree));extern tree build_pointer_type		PROTO((tree));extern tree build_reference_type 	PROTO((tree));extern tree build_index_type		PROTO((tree));extern tree build_index_2_type		PROTO((tree, tree));extern tree build_array_type		PROTO((tree, tree));extern tree build_function_type		PROTO((tree, tree));extern tree build_method_type		PROTO((tree, tree));extern tree build_offset_type		PROTO((tree, tree));extern tree build_complex_type		PROTO((tree));extern tree array_type_nelts		PROTO((tree));extern tree value_member		PROTO((tree, tree));extern tree purpose_member		PROTO((tree, tree));extern tree binfo_member		PROTO((tree, tree));extern int attribute_hash_list		PROTO((tree));extern int attribute_list_equal		PROTO((tree, tree));extern int attribute_list_contained	PROTO((tree, tree));extern int tree_int_cst_equal		PROTO((tree, tree));extern int tree_int_cst_lt		PROTO((tree, tree));extern int tree_int_cst_sgn		PROTO((tree));extern int index_type_equal		PROTO((tree, tree));/* From expmed.c.  Since rtl.h is included after tree.h, we can't   put the prototype here.  Rtl.h does declare the prototype if   tree.h had been included.  */extern tree make_tree ();/* Return a type like TTYPE except that its TYPE_ATTRIBUTES   is ATTRIBUTE.   Such modified types already made are recorded so that duplicates   are not made. */extern tree build_type_attribute_variant PROTO((tree, tree));extern tree build_decl_attribute_variant PROTO((tree, tree));/* Return 1 if an attribute and its arguments are valid for a decl or type.  */int valid_machine_attribute		PROTO((tree, tree, tree, tree));/* Given a tree node and a string, return non-zero if the tree node is   a valid attribute name for the string.  */int is_attribute_p			PROTO((char *, tree));/* Given an attribute name and a list of attributes, return the list element   of the attribute or NULL_TREE if not found.  */tree lookup_attribute			PROTO((char *, 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));/* Return an expr equal to X but certainly not valid as an lvalue.  */extern tree non_lvalue			PROTO((tree));extern tree pedantic_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 HOST_WIDE_INT));extern tree round_up			PROTO((tree, int));extern tree get_pending_sizes		PROTO((void));extern void put_pending_sizes		PROTO((tree));/* Type for sizes of data-type.  */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));/* 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));/* 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.  */

⌨️ 快捷键说明

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