+2007-12-28 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (ada_evaluate_subexp): Break two large expressions
+ using temporary variables.
+
2007-12-27 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (ada_value_cast): New function, extracted out from
case BINOP_LOGICAL_AND:
case BINOP_LOGICAL_OR:
case UNOP_LOGICAL_NOT:
- *pos -= 1;
- return value_cast (LA_BOOL_TYPE,
- evaluate_subexp_standard (expect_type, exp,
- pos, noside));
+ {
+ struct value *val;
+
+ *pos -= 1;
+ val = evaluate_subexp_standard (expect_type, exp, pos, noside);
+ return value_cast (LA_BOOL_TYPE, val);
+ }
case BINOP_BITWISE_AND:
case BINOP_BITWISE_IOR:
case BINOP_BITWISE_XOR:
- arg1 = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
- *pos = pc;
- return value_cast (value_type (arg1),
- evaluate_subexp_standard (expect_type, exp,
- pos, noside));
-
+ {
+ struct value *val;
+
+ arg1 = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
+ *pos = pc;
+ val = evaluate_subexp_standard (expect_type, exp, pos, noside);
+
+ return value_cast (value_type (arg1), val);
+ }
case OP_VAR_VALUE:
*pos -= 1;