gas/
[deliverable/binutils-gdb.git] / gdb / ax-gdb.c
index aaefed6f6a2fd921e7c66d561dc5daf104dfc234..1bf03df5b8ba7fd4b58fe304244f316c9fba2cf8 100644 (file)
@@ -95,8 +95,6 @@ static void gen_int_literal (struct agent_expr *ax,
                             struct axs_value *value,
                             LONGEST k, struct type *type);
 
-
-static void require_rvalue (struct agent_expr *ax, struct axs_value *value);
 static void gen_usual_unary (struct expression *exp, struct agent_expr *ax,
                             struct axs_value *value);
 static int type_wider_than (struct type *type1, struct type *type2);
@@ -157,8 +155,6 @@ static void gen_repeat (struct expression *exp, union exp_element **pc,
 static void gen_sizeof (struct expression *exp, union exp_element **pc,
                        struct agent_expr *ax, struct axs_value *value,
                        struct type *size_type);
-static void gen_expr (struct expression *exp, union exp_element **pc,
-                     struct agent_expr *ax, struct axs_value *value);
 static void gen_expr_binop_rest (struct expression *exp,
                                 enum exp_opcode op, union exp_element **pc,
                                 struct agent_expr *ax,
@@ -791,7 +787,7 @@ gen_int_literal (struct agent_expr *ax, struct axs_value *value, LONGEST k,
 /* Take what's on the top of the stack (as described by VALUE), and
    try to make an rvalue out of it.  Signal an error if we can't do
    that.  */
-static void
+void
 require_rvalue (struct agent_expr *ax, struct axs_value *value)
 {
   /* Only deal with scalars, structs and such may be too large
@@ -1803,7 +1799,7 @@ gen_sizeof (struct expression *exp, union exp_element **pc,
 /* XXX: i18n */
 /* A gen_expr function written by a Gen-X'er guy.
    Append code for the subexpression of EXPR starting at *POS_P to AX.  */
-static void
+void
 gen_expr (struct expression *exp, union exp_element **pc,
          struct agent_expr *ax, struct axs_value *value)
 {
@@ -2038,7 +2034,8 @@ gen_expr (struct expression *exp, union exp_element **pc,
 
     case OP_INTERNALVAR:
       {
-       const char *name = internalvar_name ((*pc)[1].internalvar);
+       struct internalvar *var = (*pc)[1].internalvar;
+       const char *name = internalvar_name (var);
        struct trace_state_variable *tsv;
 
        (*pc) += 3;
@@ -2052,7 +2049,7 @@ gen_expr (struct expression *exp, union exp_element **pc,
            value->kind = axs_rvalue;
            value->type = builtin_type (exp->gdbarch)->builtin_long_long;
          }
-       else
+       else if (! compile_internalvar_to_ax (var, ax, value))
          error (_("$%s is not a trace state variable; GDB agent "
                   "expressions cannot use convenience variables."), name);
       }
@@ -2174,7 +2171,6 @@ gen_expr (struct expression *exp, union exp_element **pc,
 
     case OP_THIS:
       {
-       char *this_name;
        struct symbol *sym, *func;
        struct block *b;
        const struct language_defn *lang;
This page took 0.02494 seconds and 4 git commands to generate.