X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftree.h;h=8634acb6617a7e50d34d9176c1ce1452063ed2fa;hb=b4b149523ef378d5941a3499264b703be5f1b512;hp=a394a31f396f45e5efeee30cf3c329ce885cfc10;hpb=2ade676bb8f37e7d1f6f285e6be78fdb96a60f32;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/tree.h b/gcc/tree.h index a394a31f396..8634acb6617 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -84,7 +84,7 @@ extern const char *const built_in_class_names[4]; /* Codes that identify the various built in functions so that expand_call can identify them quickly. */ -#define DEF_BUILTIN(x) x, +#define DEF_BUILTIN(ENUM, N, C, T, LT, B, F, NA) ENUM, enum built_in_function { #include "builtins.def" @@ -188,7 +188,7 @@ struct tree_common TREE_OVERFLOW in INTEGER_CST, REAL_CST, COMPLEX_CST TREE_PUBLIC in - VAR_DECL or FUNCTION_DECL + VAR_DECL or FUNCTION_DECL or IDENTIFIER_NODE TREE_VIA_PUBLIC in TREE_LIST or TREE_VEC EXPR_WFL_EMIT_LINE_NOTE in @@ -261,7 +261,8 @@ struct tree_common bounded_flag: TREE_BOUNDED in - expressions, VAR_DECL, PARM_DECL, FIELD_DECL, FUNCTION_DECL + expressions, VAR_DECL, PARM_DECL, FIELD_DECL, FUNCTION_DECL, + IDENTIFIER_NODE TYPE_BOUNDED in ..._TYPE */ @@ -517,7 +518,7 @@ extern void tree_class_check_failed PARAMS ((const tree, int, /* In a VAR_DECL or FUNCTION_DECL, nonzero means name is to be accessible from outside this module. - In an identifier node, nonzero means an external declaration + In an IDENTIFIER_NODE, nonzero means an external declaration accessible from outside this module was previously seen for this name in an inner scope. */ #define TREE_PUBLIC(NODE) ((NODE)->common.public_flag) @@ -728,16 +729,27 @@ struct tree_complex union tree_node *imag; }; +#include "hashtable.h" + /* Define fields and accessors for some special-purpose tree nodes. */ -#define IDENTIFIER_LENGTH(NODE) (IDENTIFIER_NODE_CHECK (NODE)->identifier.length) -#define IDENTIFIER_POINTER(NODE) (IDENTIFIER_NODE_CHECK (NODE)->identifier.pointer) +#define IDENTIFIER_LENGTH(NODE) \ + (IDENTIFIER_NODE_CHECK (NODE)->identifier.id.len) +#define IDENTIFIER_POINTER(NODE) \ + ((char *) IDENTIFIER_NODE_CHECK (NODE)->identifier.id.str) + +/* Translate a hash table identifier pointer to a tree_identifier + pointer, and vice versa. */ + +#define HT_IDENT_TO_GCC_IDENT(NODE) \ + ((tree) ((char *) (NODE) - sizeof (struct tree_common))) +#define GCC_IDENT_TO_HT_IDENT(NODE) \ + (&((struct tree_identifier *) (NODE))->id) struct tree_identifier { struct tree_common common; - int length; - const char *pointer; + struct ht_identifier id; }; /* In a TREE_LIST node. */ @@ -1952,13 +1964,6 @@ extern tree get_identifier PARAMS ((const char *)); extern tree maybe_get_identifier PARAMS ((const char *)); -/* Look up an identifier with the name TEXT, replace its identifier - node with NODE, and return the old identifier node. This is used - by languages which need to enable and disable keywords based on - context; e.g. see remember_protocol_qualifiers in objc/objc-act.c. */ - -extern tree set_identifier PARAMS ((const char *, tree)); - /* Construct various types of nodes. */ #define build_int_2(LO,HI) \ @@ -2060,12 +2065,14 @@ extern tree lookup_attribute PARAMS ((const char *, tree)); extern tree merge_attributes PARAMS ((tree, tree)); -/* Given a type node TYPE and a TYPE_QUALIFIER_SET, return a type for - the same kind of data as TYPE describes. Variants point to the - "main variant" (which has no qualifiers set) 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. */ +/* Return a version of the TYPE, qualified as indicated by the + TYPE_QUALS, if one exists. If no qualified version exists yet, + return NULL_TREE. */ + +extern tree get_qualified_type PARAMS ((tree, int)); + +/* Like get_qualified_type, but creates the type if it does not + exist. This function never returns NULL_TREE. */ extern tree build_qualified_type PARAMS ((tree, int)); @@ -2111,12 +2118,17 @@ typedef struct record_layout_info_s unsigned int record_align; /* The alignment of the record so far, not including padding, in bits. */ unsigned int unpacked_align; + /* The alignment of the record so far, allowing for the record to be + padded only at the end, in bits. */ + unsigned int unpadded_align; /* The static variables (i.e., class variables, as opposed to instance variables) encountered in T. */ tree pending_statics; int packed_maybe_necessary; } *record_layout_info; +extern void set_lang_adjust_rli PARAMS ((void (*) PARAMS + ((record_layout_info)))); extern record_layout_info start_record_layout PARAMS ((tree)); extern tree bit_from_pos PARAMS ((tree, tree)); extern tree byte_from_pos PARAMS ((tree, tree)); @@ -2453,10 +2465,6 @@ extern const 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. */ @@ -2513,6 +2521,7 @@ extern tree get_set_constructor_bytes PARAMS ((tree, unsigned char *, int)); extern tree get_callee_fndecl PARAMS ((tree)); extern void set_decl_assembler_name PARAMS ((tree)); +extern int type_num_arguments PARAMS ((tree)); /* In stmt.c */ @@ -2554,13 +2563,8 @@ extern void start_cleanup_deferral PARAMS ((void)); extern void end_cleanup_deferral PARAMS ((void)); extern int is_body_block PARAMS ((tree)); -extern void mark_block_as_eh_region PARAMS ((void)); -extern void mark_block_as_not_eh_region PARAMS ((void)); -extern int is_eh_region PARAMS ((void)); extern int conditional_context PARAMS ((void)); extern tree last_cleanup_this_contour PARAMS ((void)); -extern int expand_dhc_cleanup PARAMS ((tree)); -extern int expand_dcc_cleanup PARAMS ((tree)); extern void expand_start_case PARAMS ((int, tree, tree, const char *)); extern void expand_end_case PARAMS ((tree)); @@ -2716,10 +2720,10 @@ extern void print_obstack_name PARAMS ((char *, FILE *, #endif extern void expand_function_end PARAMS ((const char *, int, int)); extern void expand_function_start PARAMS ((tree, int)); +extern void expand_pending_sizes PARAMS ((tree)); extern int real_onep PARAMS ((tree)); extern int real_twop PARAMS ((tree)); -extern void start_identifier_warnings PARAMS ((void)); extern void gcc_obstack_init PARAMS ((struct obstack *)); extern void init_obstacks PARAMS ((void)); extern void build_common_tree_nodes PARAMS ((int));