aboutsummaryrefslogtreecommitdiff
path: root/gdb/varobj.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-07-19 15:38:18 +0000
committerTom Tromey <tromey@redhat.com>2012-07-19 15:38:18 +0000
commit608b49672edd92191a25a2c365def9d2f4f51db7 (patch)
tree0ecad22ba0bdc2504d989da1742810ccc34a69b0 /gdb/varobj.c
parent274b54d7e28ed7bb6c03c9d3a27b43151548b8af (diff)
downloadgdb-608b49672edd92191a25a2c365def9d2f4f51db7.zip
gdb-608b49672edd92191a25a2c365def9d2f4f51db7.tar.gz
gdb-608b49672edd92191a25a2c365def9d2f4f51db7.tar.bz2
PR exp/13206:
* ax-gdb.c (gen_expr) <OP_TYPEOF, OP_DECLTYPE>: New cases. * breakpoint.c (watchpoint_exp_is_const) <OP_TYPEOF, OP_DECLTYPE>: New cases. * c-exp.y (TYPEOF, DECLTYPE): New tokens. (type_exp): Add new productions. (ident_tokens): Add __typeof__, typeof, __typeof, __decltype, and decltype. * eval.c (evaluate_subexp_standard) <OP_TYPEOF, OP_DECLTYPE>: New case. * expprint.c (dump_subexp_body_standard) <OP_TYPEOF, OP_DECLTYPE>: New case. * parse.c (operator_length_standard) <OP_TYPEOF, OP_DECLTYPE>: New case. * std-operator.def (OP_TYPEOF, OP_DECLTYPE): New constants. * varobj.c (varobj_create): Handle OP_TYPEOF, OP_DECLTYPE. gdb/testsuite * gdb.cp/casts.exp: Add tests for typeof and decltype. * gdb.cp/casts.cc (decltype): New function. (main): Use it.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r--gdb/varobj.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 42e2ce4..99b158e 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -675,7 +675,9 @@ varobj_create (char *objname,
}
/* Don't allow variables to be created for types. */
- if (var->root->exp->elts[0].opcode == OP_TYPE)
+ if (var->root->exp->elts[0].opcode == OP_TYPE
+ || var->root->exp->elts[0].opcode == OP_TYPEOF
+ || var->root->exp->elts[0].opcode == OP_DECLTYPE)
{
do_cleanups (old_chain);
fprintf_unfiltered (gdb_stderr, "Attempt to use a type name"