Fix a dangling cleanup in linspec_parse_basic.
authorKeith Seitz <keiths@redhat.com>
Mon, 5 May 2014 20:43:31 +0000 (13:43 -0700)
committerKeith Seitz <keiths@redhat.com>
Mon, 5 May 2014 20:43:31 +0000 (13:43 -0700)
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.

gdb/ChangeLog
gdb/linespec.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.linespec/ls-dollar.exp

index fc8b44a..e38a86a 100644 (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>
 
index 610809d..cb76b9c 100644 (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
        {
index 311b528..dbcf0ae 100644 (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
index 2e35804..bccc40a 100644 (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\\\."