Remove operator BINOP_RANGE
authorYao Qi <yao@codesourcery.com>
Tue, 15 Apr 2014 03:28:15 +0000 (11:28 +0800)
committerYao Qi <yao@codesourcery.com>
Sun, 20 Jul 2014 19:46:37 +0000 (03:46 +0800)
BINOP_RANGE was added by the following commit for chill language.

commit badefd2800f5ee2dc6a0eef870771af9dc29bba7
Author: Per Bothner <per@bothner.com>
Date:   Wed Nov 29 22:59:31 1995 +0000

        * expression.h (enum exp_opcode):  Add BINOP_RANGE.
        * expprint.c (dump_expression):  Support BINOP_RANGE.
        * eval.c (evaluate_subexp_standard):  Handle BINOP_RANGE (as error).
        (case MULTI_SUBSCRIPT):  Fix broken f77 value->int ad hoc conversion.
        * ch-lang.c (chill_op_print_tab):  Support BINOP_RANGE.
        (evaluate_subexp_chill):  Error on BINOP_COMMA.

Chill language is no longer supported, so we can remove BINOP_RANGE too.
This patch is to remove BINOP_RANGE.

gdb:

2014-07-20  Yao Qi  <yao@codesourcery.com>

* std-operator.def: Remove BINOP_RANGE.
* breakpoint.c (watchpoint_exp_is_const): Update.
* expprint.c (dump_subexp_body_standard): Likewise.
* eval.c (init_array_element): Remove dead code.
(evaluate_subexp_standard): Likewise.

gdb/ChangeLog
gdb/breakpoint.c
gdb/eval.c
gdb/expprint.c
gdb/std-operator.def

index 7cd8ada6063034592e502065fd2e528d1a17e4d0..0f258a03948ce80d64a8983df3affa7a140bdd10 100644 (file)
@@ -1,3 +1,11 @@
+2014-07-20  Yao Qi  <yao@codesourcery.com>
+
+       * std-operator.def: Remove BINOP_RANGE.
+       * breakpoint.c (watchpoint_exp_is_const): Update.
+       * expprint.c (dump_subexp_body_standard): Likewise.
+       * eval.c (init_array_element): Remove dead code.
+       (evaluate_subexp_standard): Likewise.
+
 2014-07-20  Yao Qi  <yao@codesourcery.com>
 
        * std-operator.def: Remove BINOP_IN.
index bad375bb26e299fc6adcb20f6fd9d04b0b59523f..1c6070f9aa5d0d00de7cbd4dbbef86a0678257bf 100644 (file)
@@ -10602,7 +10602,6 @@ watchpoint_exp_is_const (const struct expression *exp)
        case BINOP_MAX:
        case BINOP_INTDIV:
        case BINOP_CONCAT:
-       case BINOP_RANGE:
        case TERNOP_COND:
        case TERNOP_SLICE:
 
index 949b2f830de0d6f8f840f1378f3c3ec58aedccea..f07509678e29f22f0f0ebb081040a70870fbaa75 100644 (file)
@@ -369,22 +369,6 @@ init_array_element (struct value *array, struct value *element,
       return init_array_element (array, element,
                                 exp, pos, noside, low_bound, high_bound);
     }
-  else if (exp->elts[*pos].opcode == BINOP_RANGE)
-    {
-      LONGEST low, high;
-
-      (*pos)++;
-      low = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
-      high = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
-      if (low < low_bound || high > high_bound)
-       error (_("tuple range index out of range"));
-      for (index = low; index <= high; index++)
-       {
-         memcpy (value_contents_raw (array)
-                 + (index - low_bound) * element_size,
-                 value_contents (element), element_size);
-       }
-    }
   else
     {
       index = value_as_long (evaluate_subexp (NULL_TYPE, exp, pos, noside));
@@ -903,11 +887,6 @@ evaluate_subexp_standard (struct type *expect_type,
              struct value *element;
              int index_pc = 0;
 
-             if (exp->elts[*pos].opcode == BINOP_RANGE)
-               {
-                 index_pc = ++(*pos);
-                 evaluate_subexp (NULL_TYPE, exp, pos, EVAL_SKIP);
-               }
              element = evaluate_subexp (element_type, exp, pos, noside);
              if (value_type (element) != element_type)
                element = value_cast (element_type, element);
@@ -958,22 +937,10 @@ evaluate_subexp_standard (struct type *expect_type,
              struct type *range_low_type, *range_high_type;
              struct value *elem_val;
 
-             if (exp->elts[*pos].opcode == BINOP_RANGE)
-               {
-                 (*pos)++;
-                 elem_val = evaluate_subexp (element_type, exp, pos, noside);
-                 range_low_type = value_type (elem_val);
-                 range_low = value_as_long (elem_val);
-                 elem_val = evaluate_subexp (element_type, exp, pos, noside);
-                 range_high_type = value_type (elem_val);
-                 range_high = value_as_long (elem_val);
-               }
-             else
-               {
-                 elem_val = evaluate_subexp (element_type, exp, pos, noside);
-                 range_low_type = range_high_type = value_type (elem_val);
-                 range_low = range_high = value_as_long (elem_val);
-               }
+             elem_val = evaluate_subexp (element_type, exp, pos, noside);
+             range_low_type = range_high_type = value_type (elem_val);
+             range_low = range_high = value_as_long (elem_val);
+
              /* Check types of elements to avoid mixture of elements from
                 different types. Also check if type of element is "compatible"
                 with element type of powerset.  */
@@ -2127,13 +2094,6 @@ evaluate_subexp_standard (struct type *expect_type,
            }
        }
 
-    case BINOP_RANGE:
-      evaluate_subexp (NULL_TYPE, exp, pos, noside);
-      evaluate_subexp (NULL_TYPE, exp, pos, noside);
-      if (noside == EVAL_SKIP)
-       goto nosideret;
-      error (_("':' operator used in invalid context"));
-
     case BINOP_SUBSCRIPT:
       arg1 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
       arg2 = evaluate_subexp (NULL_TYPE, exp, pos, noside);
index 505bd485fac775142c864e88e8528d71496be8aa..7f58e4e37f65a606e1235514329dd9bf84b0b21c 100644 (file)
@@ -802,7 +802,6 @@ dump_subexp_body_standard (struct expression *exp,
     case BINOP_ASSIGN_MODIFY:
     case BINOP_VAL:
     case BINOP_CONCAT:
-    case BINOP_RANGE:
     case BINOP_END:
     case STRUCTOP_MEMBER:
     case STRUCTOP_MPTR:
index 16014e0914a2a8feac13f120b59bdfc4cad7f3a0..c33a287c2a6d2c63538d7431d51249c338353f71 100644 (file)
@@ -87,10 +87,6 @@ OP (BINOP_VAL)
    the second operand with itself that many times.  */
 OP (BINOP_CONCAT)
 
-/* This is the "colon operator" used various places in (the
-   deleted) Chill.  */
-OP (BINOP_RANGE)
-
 /* This must be the highest BINOP_ value, for expprint.c.  */
 OP (BINOP_END)