aboutsummaryrefslogtreecommitdiff
path: root/gdb/ch-exp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ch-exp.c')
-rw-r--r--gdb/ch-exp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/ch-exp.c b/gdb/ch-exp.c
index 492f376..95021e7 100644
--- a/gdb/ch-exp.c
+++ b/gdb/ch-exp.c
@@ -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);