* ch-exp.c (parse_tuple): Error if invalid mode.
authorPer Bothner <per@bothner.com>
Wed, 24 Jan 1996 00:50:11 +0000 (00:50 +0000)
committerPer Bothner <per@bothner.com>
Wed, 24 Jan 1996 00:50:11 +0000 (00:50 +0000)
This fixes PR chill/8870.

gdb/ChangeLog
gdb/ch-exp.c

index 50aaf96b2999b625fe482929adc4fa0742879c11..7f771cea233c2f732f700c2273d610b7ac8e4a6b 100644 (file)
@@ -1,5 +1,7 @@
 Tue Jan 23 14:36:05 1996  Per Bothner  <bothner@kalessin.cygnus.com>
 
+       * ch-exp.c (parse_tuple):  Error if invalid mode.
+
        * value.h (COERCE_ARRAY):  Don't coerce enums.
        (COERCE_ENUM):  Don't COERCE_REF.
        (COERCE_NUMBER):  New macro (same as COERCE_ARRAY then COERCE_ENUM).
index 492f3765a726fc0b214a9eb6e6d755e4aa93f295..95021e7ca7eafbe54a426dba8e87ad76ab0467e6 100644 (file)
@@ -579,6 +579,11 @@ parse_tuple (mode)
   write_exp_elt_opcode (OP_ARRAY);
   if (mode)
     {
+      struct type *type = check_typedef (mode);
+      if (TYPE_CODE (type) != TYPE_CODE_ARRAY
+         && TYPE_CODE (type) != TYPE_CODE_STRUCT
+         && TYPE_CODE (type) != TYPE_CODE_SET)
+       error ("invalid tuple mode");
       write_exp_elt_opcode (UNOP_CAST);
       write_exp_elt_type (mode);
       write_exp_elt_opcode (UNOP_CAST);