X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftree.def;h=cd0f1c298c3988c1e7916524b4c9c189d60234ab;hb=e701a4778f1ee1c5177bdaf3f7f17e5304426d6d;hp=8a02e5b2f601ca47cfe4b34ddd374ba9e8d9a510;hpb=cef0c6a0d464d388c020942e1d0b2ba7ae46e76e;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/tree.def b/gcc/tree.def index 8a02e5b2f60..cd0f1c298c3 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -49,7 +49,7 @@ DEFTREECODE (ERROR_MARK, "error_mark", 'x', 0) Internally it looks like a STRING_CST node. There is only one IDENTIFIER_NODE ever made for any particular name. Use `get_identifier' to get it (or create it, the first time). */ -DEFTREECODE (IDENTIFIER_NODE, "identifier_node", 'x', -1) +DEFTREECODE (IDENTIFIER_NODE, "identifier_node", 'x', ((LANG_HOOKS_IDENTIFIER_SIZE - sizeof (struct tree_common) + sizeof (tree) - 1) / sizeof (tree))) /* Has the TREE_VALUE and TREE_PURPOSE fields. */ /* These nodes are made into lists by chaining through the @@ -269,6 +269,9 @@ DEFTREECODE (REAL_CST, "real_cst", 'c', 3) Also there is TREE_CST_RTL. */ DEFTREECODE (COMPLEX_CST, "complex_cst", 'c', 3) +/* Contents are in TREE_VECTOR_CST_ELTS field. */ +DEFTREECODE (VECTOR_CST, "vector_cst", 'c', 3) + /* Contents are TREE_STRING_LENGTH and TREE_STRING_POINTER fields. Also there is TREE_CST_RTL. */ DEFTREECODE (STRING_CST, "string_cst", 'c', 3) @@ -691,6 +694,18 @@ DEFTREECODE (NOP_EXPR, "nop_expr", '1', 1) /* Value is same as argument, but guaranteed not an lvalue. */ DEFTREECODE (NON_LVALUE_EXPR, "non_lvalue_expr", '1', 1) +/* Represents viewing something of one type as being of a second type. + This corresponds to an "Unchecked Conversion" in Ada and roughly to + the idiom *(type2 *)&X in C. The only operand is the value to be + viewed as being of another type. It is undefined if the type of the + input and of the expression have different sizes. + + This code may also be used within the LHS of a MODIFY_EXPR, in which + case no actual data motion may occur. TREE_ADDRESSABLE will be set in + this case and GCC must abort if it could not do the operation without + generating insns. */ +DEFTREECODE (VIEW_CONVERT_EXPR, "view_convert_expr", '1', 1) + /* Represents something we computed once and will use multiple times. First operand is that expression. Second is the function decl in which the SAVE_EXPR was created. The third operand is the RTL,