+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>
 
 
              discard_cleanups (cleanup);
              return;
            }
+
+         /* The convenience variable/history value parsed correctly.
+            NAME is no longer needed.  */
+         do_cleanups (cleanup);
        }
       else
        {
 
+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
 
 
 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\\\."