From: Sergio Durigan Junior Date: Fri, 8 Dec 2017 20:33:55 +0000 (-0500) Subject: Fix thinko on dtrace-probe.c:dtrace_process_dof_probe X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=92469284a650232768523564f2c715c4ebb57906;p=binutils-gdb.git Fix thinko on dtrace-probe.c:dtrace_process_dof_probe While investigating PR gdb/22557 ("Regression: gdb.base/dtrace-probe.exp"), I noticed that the code is wrongly declaring a new "expression_up" variable inside the TRY block in "dtrace_process_dof_probe". This causes the outter "expr" variable to be empty, which may have an impact later when evaluating the expression. This commit fixes that. Unfortunately the script used to test DTrace probes (gdb/testsuite/lib/pdtrace.in) is not very reliable so I cannot say whether this commit fixes the PR mentioned above. Nonetheless, it's an obvious fix and should go in. gdb/ChangeLog: 2017-12-08 Sergio Durigan Junior * dtrace-probe.c (dtrace_process_dof_probe): Do not declare a new "expression_up" inside the TRY block. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7d061c807cb..26cf18edb89 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-12-08 Sergio Durigan Junior + + * dtrace-probe.c (dtrace_process_dof_probe): Do not declare a new + "expression_up" inside the TRY block. + 2017-12-08 Yao Qi * breakpoint.c (update_watchpoint): Call diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c index 1c88f890540..3314445f98a 100644 --- a/gdb/dtrace-probe.c +++ b/gdb/dtrace-probe.c @@ -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)); }