Fix GDB build failure when $development is false
[deliverable/binutils-gdb.git] / gdb / dtrace-probe.c
index 1c88f8905404c0b3d9561626a152f05bbaa9a09a..d70a704aa49fc8014e845fb788884c66ea60c5d0 100644 (file)
@@ -1,6 +1,6 @@
 /* DTrace probe support for GDB.
 
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   Copyright (C) 2014-2018 Free Software Foundation, Inc.
 
    Contributed by Oracle, Inc.
 
@@ -486,17 +486,16 @@ dtrace_process_dof_probe (struct objfile *objfile,
 
          TRY
            {
-             expression_up expr
-               = parse_expression_with_language (type_str.c_str (),
-                                                 language_c);
+             expr = parse_expression_with_language (type_str.c_str (),
+                                                    language_c);
            }
          CATCH (ex, RETURN_MASK_ERROR)
            {
            }
          END_CATCH
 
-         if (expr != NULL && expr->elts[0].opcode == OP_TYPE)
-           type = expr->elts[1].type;
+         if (expr != NULL && expr.get ()->elts[0].opcode == OP_TYPE)
+           type = expr.get ()->elts[1].type;
 
          args.emplace_back (type, std::move (type_str), std::move (expr));
        }
@@ -626,21 +625,15 @@ dtrace_probe::build_arg_exprs (struct gdbarch *gdbarch)
      value of the argument when executed at the PC of the probe.  */
   for (dtrace_probe_arg &arg : m_args)
     {
-      struct cleanup *back_to;
-      struct parser_state pstate;
-
       /* Initialize the expression buffer in the parser state.  The
         language does not matter, since we are using our own
         parser.  */
-      initialize_expout (&pstate, 10, current_language, gdbarch);
-      back_to = make_cleanup (free_current_contents, &pstate.expout);
+      parser_state pstate (10, current_language, gdbarch);
 
       /* The argument value, which is ABI dependent and casted to
         `long int'.  */
       gdbarch_dtrace_parse_probe_argument (gdbarch, &pstate, argc);
 
-      discard_cleanups (back_to);
-
       /* Casting to the expected type, but only if the type was
         recognized at probe load time.  Otherwise the argument will
         be evaluated as the long integer passed to the probe.  */
@@ -651,8 +644,7 @@ dtrace_probe::build_arg_exprs (struct gdbarch *gdbarch)
          write_exp_elt_opcode (&pstate, UNOP_CAST);
        }
 
-      reallocate_expout (&pstate);
-      arg.expr = expression_up (pstate.expout);
+      arg.expr = pstate.release ();
       prefixify_expression (arg.expr.get ());
       ++argc;
     }
This page took 0.024696 seconds and 4 git commands to generate.