* inftarg.c (child_thread_alive): New function to see if a
[deliverable/binutils-gdb.git] / gdb / parse.c
index a6d9575765082a5d1616dbab4d6460a3319e0584..36f7c3917b4d23d9a2c23bf0a5fe4587900ddb20 100644 (file)
@@ -470,12 +470,7 @@ length_of_subexp (expr, endpos)
       oplen = 3;
       break;
 
-    case OP_F77_LITERAL_COMPLEX:
-      oplen = 1; 
-      args = 2;
-      break; 
-
-    case OP_F77_SUBSTR:
+    case OP_COMPLEX:
       oplen = 1; 
       args = 2;
       break; 
@@ -535,13 +530,13 @@ length_of_subexp (expr, endpos)
       break;
 
     case TERNOP_COND:
+    case TERNOP_SLICE:
+    case TERNOP_SLICE_COUNT:
       args = 3;
       break;
 
       /* Modula-2 */
    case MULTI_SUBSCRIPT:
-      /* Fortran */
-   case MULTI_F77_SUBSCRIPT:
       oplen = 3;
       args = 1 + longest_to_int (expr->elts[endpos- 2].longconst);
       break;
@@ -613,12 +608,7 @@ prefixify_subexp (inexpr, outexpr, inend, outbeg)
       oplen = 3;
       break;
 
-    case OP_F77_LITERAL_COMPLEX:
-      oplen = 1; 
-      args = 2; 
-      break; 
-
-   case OP_F77_SUBSTR:
+    case OP_COMPLEX:
       oplen = 1; 
       args = 2; 
       break; 
@@ -677,6 +667,8 @@ prefixify_subexp (inexpr, outexpr, inend, outbeg)
       break;
 
     case TERNOP_COND:
+    case TERNOP_SLICE:
+    case TERNOP_SLICE_COUNT:
       args = 3;
       break;
 
@@ -687,8 +679,6 @@ prefixify_subexp (inexpr, outexpr, inend, outbeg)
 
       /* Modula-2 */
    case MULTI_SUBSCRIPT:
-      /* Fortran */
-   case MULTI_F77_SUBSCRIPT:
       oplen = 3;
       args = 1 + longest_to_int (inexpr->elts[inend - 2].longconst);
       break;
@@ -885,20 +875,22 @@ follow_types (follow_type)
        break;
       case tp_array:
        array_size = pop_type_int ();
-       if (array_size != -1)
-         {
-           range_type =
-             create_range_type ((struct type *) NULL,
-                                builtin_type_int, 0,
-                                array_size - 1);
-           follow_type =
-             create_array_type ((struct type *) NULL,
-                                follow_type, range_type);
-         }
-       else
-         follow_type = lookup_pointer_type (follow_type);
+       /* FIXME-type-allocation: need a way to free this type when we are
+          done with it.  */
+       range_type =
+         create_range_type ((struct type *) NULL,
+                            builtin_type_int, 0,
+                            array_size >= 0 ? array_size - 1 : 0);
+       follow_type =
+         create_array_type ((struct type *) NULL,
+                            follow_type, range_type);
+       if (array_size < 0)
+         TYPE_ARRAY_UPPER_BOUND_TYPE(follow_type)
+           = BOUND_CANNOT_BE_DETERMINED;
        break;
       case tp_function:
+       /* FIXME-type-allocation: need a way to free this type when we are
+          done with it.  */
        follow_type = lookup_function_type (follow_type);
        break;
       }
This page took 0.024228 seconds and 4 git commands to generate.