Fix debug printing of TYPE_INSTANCE.
	* expprint.c (print_subexp_standard) <TYPE_INSTANCE>: New.
	(dump_subexp_body_standard) <TYPE_INSTANCE>: New.
This commit is contained in:
Jan Kratochvil 2011-02-01 18:56:34 +00:00
parent 56c1241406
commit 600ea1bed9
2 changed files with 50 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2011-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix debug printing of TYPE_INSTANCE.
* expprint.c (print_subexp_standard) <TYPE_INSTANCE>: New.
(dump_subexp_body_standard) <TYPE_INSTANCE>: New.
2011-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix debug printing of BINOP_IN, OP_OBJC_MSGCALL,

View File

@ -534,6 +534,27 @@ print_subexp_standard (struct expression *exp, int *pos,
fprintf_unfiltered (stream, ")");
return;
case TYPE_INSTANCE:
{
LONGEST count = exp->elts[pc + 1].longconst;
/* The COUNT. */
(*pos)++;
fputs_unfiltered ("TypesInstance(", stream);
while (count-- > 0)
{
type_print (exp->elts[(*pos)++].type, "", stream, 0);
if (count > 0)
fputs_unfiltered (",", stream);
}
fputs_unfiltered (",", stream);
/* Ending COUNT and ending TYPE_INSTANCE. */
(*pos) += 2;
print_subexp (exp, pos, stream, PREC_PREFIX);
fputs_unfiltered (")", stream);
return;
}
/* Default ops */
default:
@ -937,6 +958,29 @@ dump_subexp_body_standard (struct expression *exp,
elt += 4 + BYTES_TO_EXP_ELEM (len + 1);
}
break;
case TYPE_INSTANCE:
{
char *elem_name;
LONGEST len;
len = exp->elts[elt++].longconst;
fprintf_filtered (stream, "%s TypeInstance: ", plongest (len));
while (len-- > 0)
{
fprintf_filtered (stream, "Type @");
gdb_print_host_address (exp->elts[elt].type, stream);
fprintf_filtered (stream, " (");
type_print (exp->elts[elt].type, NULL, stream, 0);
fprintf_filtered (stream, ")");
elt++;
if (len > 0)
fputs_filtered (", ", stream);
}
/* Ending LEN and ending TYPE_INSTANCE. */
elt += 2;
elt = dump_subexp (exp, stream, elt);
}
break;
default:
case OP_NULL:
case MULTI_SUBSCRIPT: