aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/ax-gdb.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 03af1e0..2269549 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-26 Jim Blandy <jimb@codesourcery.com>
+
+ * ax-general.c (gen_traced_pop, gen_int_literal)
+ (gen_usual_arithmetic): Check for typedefs.
+
2007-10-26 Joel Brobecker <brobecker@adacore.com>
* parse.c (prefixify_expression): Minor reformatting.
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
index 18b7e31..27cc5b1 100644
--- a/gdb/ax-gdb.c
+++ b/gdb/ax-gdb.c
@@ -319,7 +319,7 @@ gen_traced_pop (struct agent_expr *ax, struct axs_value *value)
case axs_lvalue_memory:
{
- int length = TYPE_LENGTH (value->type);
+ int length = TYPE_LENGTH (check_typedef (value->type));
/* There's no point in trying to use a trace_quick bytecode
here, since "trace_quick SIZE pop" is three bytes, whereas
@@ -650,7 +650,7 @@ gen_int_literal (struct agent_expr *ax, struct axs_value *value, LONGEST k,
{
ax_const_l (ax, k);
value->kind = axs_rvalue;
- value->type = type;
+ value->type = check_typedef (type);
}
@@ -854,7 +854,7 @@ gen_usual_arithmetic (struct agent_expr *ax, struct axs_value *value1,
ax_simple (ax, aop_swap);
}
- value1->type = value2->type = target;
+ value1->type = value2->type = check_typedef (target);
}
}