aboutsummaryrefslogtreecommitdiff
path: root/gdb/expprint.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/expprint.c')
-rw-r--r--gdb/expprint.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/expprint.c b/gdb/expprint.c
index 45deffe..7299d64 100644
--- a/gdb/expprint.c
+++ b/gdb/expprint.c
@@ -42,6 +42,7 @@ void
print_expression (struct expression *exp, struct ui_file *stream)
{
int pc = 0;
+
print_subexp (exp, &pc, stream, PREC_NULL);
}
@@ -96,6 +97,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_LONG:
{
struct value_print_options opts;
+
get_raw_print_options (&opts);
(*pos) += 3;
value_print (value_from_longest (exp->elts[pc + 1].type,
@@ -107,6 +109,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_DOUBLE:
{
struct value_print_options opts;
+
get_raw_print_options (&opts);
(*pos) += 3;
value_print (value_from_double (exp->elts[pc + 1].type,
@@ -118,6 +121,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_VAR_VALUE:
{
struct block *b;
+
(*pos) += 3;
b = exp->elts[pc + 1].block;
if (b != NULL
@@ -140,6 +144,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_REGISTER:
{
const char *name = &exp->elts[pc + 2].string;
+
(*pos) += 3 + BYTES_TO_EXP_ELEM (exp->elts[pc + 1].longconst + 1);
fprintf_filtered (stream, "$%s", name);
return;
@@ -181,6 +186,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_STRING:
{
struct value_print_options opts;
+
nargs = longest_to_int (exp->elts[pc + 1].longconst);
(*pos) += 3 + BYTES_TO_EXP_ELEM (nargs + 1);
/* LA_PRINT_STRING will print using the current repeat count threshold.
@@ -202,6 +208,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_OBJC_NSSTRING: /* Objective-C Foundation Class NSString constant. */
{
struct value_print_options opts;
+
nargs = longest_to_int (exp->elts[pc + 1].longconst);
(*pos) += 3 + BYTES_TO_EXP_ELEM (nargs + 1);
fputs_filtered ("@\"", stream);
@@ -215,6 +222,7 @@ print_subexp_standard (struct expression *exp, int *pos,
case OP_OBJC_MSGCALL:
{ /* Objective C message (method) call. */
char *selector;
+
(*pos) += 3;
nargs = longest_to_int (exp->elts[pc + 2].longconst);
fprintf_unfiltered (stream, "[");
@@ -228,6 +236,7 @@ print_subexp_standard (struct expression *exp, int *pos,
if (nargs)
{
char *s, *nextS;
+
s = alloca (strlen (selector) + 1);
strcpy (s, selector);
for (tem = 0; tem < nargs; tem++)
@@ -291,6 +300,7 @@ print_subexp_standard (struct expression *exp, int *pos,
if (tem > 0)
{
struct value_print_options opts;
+
get_user_print_options (&opts);
LA_PRINT_STRING (stream, builtin_type (exp->gdbarch)->builtin_char,
tempstr, nargs - 1, NULL, 0, &opts);