This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/Ada] Allow 'thread' to be used as a variable name in expressions.
> gdb/ChangeLog:
>
> * ada-lex.l (rules): Only recognize 'thread' as a
> delimiter when followed by numerals, as for c-exp.y.
> Use new rewind_to_char function to rewind the input for
> expression-delimiting tokens.
> (rewind_to_char): New function.
>
> gdb/testsuite/ChangeLog:
>
> * gdb.ada/expr_delims.exp: New file.
> * gdb.ada/expr_delims/foo.adb: New file.
Thanks, Paul. This is pre-approved, with a couple of small requests.
> diff --git a/gdb/testsuite/gdb.ada/expr_delims/foo.adb b/gdb/testsuite/gdb.ada/expr_delims/foo.adb
> new file mode 100644
> index 0000000..8384741
> --- /dev/null
> +++ b/gdb/testsuite/gdb.ada/expr_delims/foo.adb
> @@ -0,0 +1,26 @@
> +-- Copyright 2008-2013 Free Software Foundation, Inc.
The copyright year range should start the year the file was committed
to medium. Was it 2008?
> +--
> +-- This program is free software; you can redistribute it and/or modify
> +-- it under the terms of the GNU General Public License as published by
> +-- the Free Software Foundation; either version 3 of the License, or
> +-- (at your option) any later version.
> +--
> +-- This program is distributed in the hope that it will be useful,
> +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
> +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +-- GNU General Public License for more details.
> +--
> +-- You should have received a copy of the GNU General Public License
> +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
> +
> +with Ada.Text_IO; use Ada.Text_IO;
Can you replace the use of Ada.Text_IO by a dummy package that
provides the "Put" function? That way, the testcase can be used
when testing no-runtime configurations. See gdb.ada/bp_reset/io.ads,
for instance.
> +
> +procedure Foo is
> + Thread: Integer;
> +begin
> + Thread := 0;
> + for I in 1 .. 100 loop
> + Thread := Thread + I; -- STOP_HERE
> + end loop;
> + Put(Integer'Image(Thread));
> +end Foo;
--
Joel