1 /* Shift right
, logical.
*/
3 DEFTREECODE (URSHIFT_EXPR
, "urshift_expr", tcc_binary
, 2)
5 /* Return
-1, 0, 1 depending on whether the first argument is
6 less
, equal
, or greater to the second argument.
*/
7 DEFTREECODE (COMPARE_EXPR
, "compare_expr", tcc_binary
, 2)
9 /* Same as COMPARE_EXPR
, but if either value is NaN
, the result is
-1.
*/
10 DEFTREECODE (COMPARE_L_EXPR
, "compare_l_expr", tcc_binary
, 2)
11 /* Same as COMPARE_EXPR
, but if either value is NaN
, the result is
1.
*/
12 DEFTREECODE (COMPARE_G_EXPR
, "compare_g_expr", tcc_binary
, 2)
14 /* Unary plus. Operand
0 is the expression the unary plus is applied
16 DEFTREECODE (UNARY_PLUS_EXPR
, "unary_plus_expr", tcc_unary
, 1)
18 /* New array creation expression.
19 Operand
0 is the array base type.
20 Operand
1 is the list of dimension expressions.
21 Operand
2 is the number of other dimensions of unspecified range.
22 Once patched
, the node will bear the type of the created array.
*/
23 DEFTREECODE (NEW_ARRAY_EXPR
, "new_array_expr", tcc_expression
, 3)
25 /* New anonymous array creation expression.
26 Operand
0 is the base type of the anonymous array.
27 Operand
1 is the signature of the dimensions this array contains.
28 Operand
2 is the anonymous array initializer.
29 Once patched
, the node will bear the type of the created array.
*/
30 DEFTREECODE (NEW_ANONYMOUS_ARRAY_EXPR
, "new_anonymous_array",
33 /* New class creation expression.
34 Operand
0 is the name of the class to be created
35 Operand
1 is the argument list used to select a constructor.
36 There is no operand
2. That slot is used for the
37 CALL_EXPR_RTL
macro (see preexpand_calls
).
38 The type should be the one of the created class.
*/
39 DEFTREECODE (NEW_CLASS_EXPR
, "new_class_expr", tcc_expression
, 3)
41 /* Defines `this
' as an expression. */
42 DEFTREECODE (THIS_EXPR, "this", tcc_unary, 0)
44 /* A labeled block. Operand 0 is the label that will be generated to
45 mark the end of the block. Operand 1 is the labeled block body. */
46 DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2)
48 /* Exit a labeled block, possibly returning a value. Operand 0 is a
49 LABELED_BLOCK_EXPR to exit. */
50 DEFTREECODE (EXIT_BLOCK_EXPR, "exit_block_expr", tcc_statement, 1)
52 /* Case statement expression.
53 Operand 1 is the case value. */
54 DEFTREECODE (CASE_EXPR, "case", tcc_expression, 1)
56 /* Default statement expression. */
57 DEFTREECODE (DEFAULT_EXPR, "default", tcc_expression, 0)
60 Operand 0 is the tried block,
61 Operand 1 contains chained catch nodes. */
62 DEFTREECODE (TRY_EXPR, "try-catch", tcc_expression, 2)
65 Operand 0 is the catch clause block, which contains the declaration of
66 the catch clause parameter. */
67 DEFTREECODE (JAVA_CATCH_EXPR, "catch", tcc_unary, 1)
69 /* Synchronized statement.
70 Operand 0 is the expression on which we wish to synchronize,
71 Operand 1 is the synchronized expression block. */
72 DEFTREECODE (SYNCHRONIZED_EXPR, "synchronized", tcc_expression, 2)
75 Operand 0 is the throw expression. */
76 DEFTREECODE (THROW_EXPR, "throw", tcc_unary, 1)
78 /* Conditional operator.
79 Operand 0 is the condition expression
80 Operand 1 is the then-value
81 Operand 2 is the else-value. */
82 DEFTREECODE (CONDITIONAL_EXPR, "?:", tcc_expression, 3)
84 /* instanceof operator.
85 Operand 0 is the expression that is getting tested
86 Operand 1 is the class used for the test. */
87 DEFTREECODE (INSTANCEOF_EXPR, "instanceof", tcc_expression, 2)
89 /* Array initializers.
90 Operand 0 is the (sub) array target to initialize, left to NULL_TREE
91 when the node is created.
92 Operand 1 is a CONSTRUCTOR node. */
93 DEFTREECODE (NEW_ARRAY_INIT, "new_array_init", tcc_unary, 1)
96 Operand 0 is the name of the class we're trying to build a
98 DEFTREECODE (CLASS_LITERAL
, "class_literal", tcc_unary
, 1)
100 /* The Java object within the exception object from the runtime.
*/
101 DEFTREECODE (JAVA_EXC_OBJ_EXPR
, "java_exc_obj_expr", tcc_expression
, 0)
103 /* Annotates a tree
node (usually an expression
) with source location
104 information
: a file
name (EXPR_WFL_FILENAME
); a line number
105 (EXPR_WFL_LINENO
); and column
number (EXPR_WFL_COLNO
). It is
106 expanded as the contained
node (EXPR_WFL_NODE
); a line note should
107 be emitted first if EXPR_WFL_EMIT_LINE_NOTE.
*/
108 #ifdef USE_MAPPED_LOCATION
109 DEFTREECODE (EXPR_WITH_FILE_LOCATION
, "expr_with_file_location",
112 DEFTREECODE (EXPR_WITH_FILE_LOCATION
, "expr_with_file_location",