diff options
Diffstat (limited to 'gdb/c-exp.y')
-rw-r--r-- | gdb/c-exp.y | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 6d604c4..5dd47fb 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -401,6 +401,18 @@ arglist : arglist ',' exp %prec ABOVE_COMMA { arglist_len++; } ; +exp : exp '(' nonempty_typelist ')' const_or_volatile + { int i; + write_exp_elt_opcode (TYPE_INSTANCE); + write_exp_elt_longcst ((LONGEST) $<ivec>3[0]); + for (i = 0; i < $<ivec>3[0]; ++i) + write_exp_elt_type ($<tvec>3[i + 1]); + write_exp_elt_longcst((LONGEST) $<ivec>3[0]); + write_exp_elt_opcode (TYPE_INSTANCE); + free ($3); + } + ; + rcurly : '}' { $$ = end_arglist () - 1; } ; |