Fix a dangling cleanup in linspec_parse_basic.

2014-05-05  Keith Seitz  <keiths@redhat.com>

	* linespec.c (linespec_parse_basic): Run cleanups if a convenience
	variable or history value is successfully parsed.

2014-05-05  Keith Seitz  <keiths@redhat.com>

	* gdb.linespec/ls-dollar.exp: Add test for linespec
	file:convenience_variable.
This commit is contained in:
Keith Seitz 2014-05-05 13:43:31 -07:00
parent 290a839c9a
commit c888a17da5
4 changed files with 24 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2014-05-05 Keith Seitz <keiths@redhat.com>
* linespec.c (linespec_parse_basic): Run cleanups if a convenience
variable or history value is successfully parsed.
2014-05-05 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>

View file

@ -1665,6 +1665,10 @@ linespec_parse_basic (linespec_parser *parser)
discard_cleanups (cleanup);
return;
}
/* The convenience variable/history value parsed correctly.
NAME is no longer needed. */
do_cleanups (cleanup);
}
else
{

View file

@ -1,3 +1,8 @@
2014-05-05 Keith Seitz <keiths@redhat.com>
* gdb.linespec/ls-dollar.exp: Add test for linespec
file:convenience_variable.
2014-05-05 Yao Qi <yao@codesourcery.com>
* gdb.trace/unavailable.exp (gdb_collect_args_test): Save

View file

@ -30,7 +30,16 @@ if {[prepare_for_testing $testfile $exefile $srcfile \
gdb_test_no_output "set listsize 1"
set line [gdb_get_line_number {dollar_func}]
gdb_test "list \$dollar_var" \
".*static int [string_to_regexp {$dollar_var}] = 0;"
gdb_test "break \$dollar_func" \
"Breakpoint $decimal at $hex: file .*$srcfile, line [gdb_get_line_number {dollar_func}]\\\."
"Breakpoint $decimal at $hex: file .*$srcfile, line $line\\\."
gdb_test_no_output "set var \$theline = $line"
gdb_test "list $srcfile:\$theline" \
".*[string_to_regexp {/* dollar_func */}]"
gdb_test "break $srcfile:\$theline" \
"Breakpoint $decimal at $hex: file .*$srcfile, line $line\\\."