diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/ada-exp.y | 4 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/rename_subscript_param.exp | 44 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb | 22 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb | 21 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads | 19 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb | 30 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads | 21 |
9 files changed, 169 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 95d7b5a..97854e8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2018-01-05 Joel Brobecker <brobecker@adacore.com> + + * ada-exp.y (write_object_renaming): When subscripting an array + using a symbol as the index, pass the block in call to + ada_lookup_encoded_symbol when looking that symbol up. + 2018-01-05 Jerome Guitton <guitton@adacore.com> * ada-lang.c (ada_array_length): Use ada_index_type instead of diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 0e60108..0acd1e2 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -891,8 +891,8 @@ write_object_renaming (struct parser_state *par_state, end - renaming_expr); renaming_expr = end; - ada_lookup_encoded_symbol (index_name, NULL, VAR_DOMAIN, - &index_sym_info); + ada_lookup_encoded_symbol (index_name, orig_left_context, + VAR_DOMAIN, &index_sym_info); if (index_sym_info.symbol == NULL) error (_("Could not find %s"), index_name); else if (SYMBOL_CLASS (index_sym_info.symbol) == LOC_TYPEDEF) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c79dffc..2684397 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2018-01-05 Joel Brobecker <brobecker@adacore.com> + + * gdb.ada/rename_subscript_param: New testcase. + 2018-01-05 Jerome Guitton <guitton@adacore.com> * gdb.ada/arr_acc_idx_w_gap: New testcase. diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param.exp b/gdb/testsuite/gdb.ada/rename_subscript_param.exp new file mode 100644 index 0000000..9188bf0 --- /dev/null +++ b/gdb/testsuite/gdb.ada/rename_subscript_param.exp @@ -0,0 +1,44 @@ +# Copyright 2016-2018 Free Software Foundation, Inc. +# +# 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/>. + +load_lib "ada.exp" + +standard_ada_testfile pb30_012 + +if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } { + return -1 +} + +clean_restart ${testfile} + +set bp_location [gdb_get_line_number "BREAK" ${testdir}/pkg.adb] +runto "pkg.adb:$bp_location" + +gdb_test "print b" \ + " = false" \ + "print b before changing its value" + +set bp_location [gdb_get_line_number "Do_Nothing" ${testdir}/pkg.adb] +gdb_test "break pkg.adb:$bp_location" \ + "Breakpoint \[0-9\]+ at.*: file .*pkg.adb, line \[0-9\]+." \ + "insert second breakpoint in pkg.adb" + +gdb_test "cont" \ + "Breakpoint \[0-9\]+, pkg.flip \\(.*" \ + "Continuing to breakpoint on call to Do_Nothing" + +gdb_test "print b" \ + " = true" \ + "print b before changing its value" diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb b/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb new file mode 100644 index 0000000..b2ea43c --- /dev/null +++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb @@ -0,0 +1,22 @@ +-- Copyright 2016-2018 Free Software Foundation, Inc. +-- +-- 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 Pkg; use Pkg; + +procedure PB30_012 is + Bits : Bits_Type := (others => False); +begin + Flip (Bits, 2); +end PB30_012; diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb new file mode 100644 index 0000000..8c990cc --- /dev/null +++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb @@ -0,0 +1,21 @@ +-- Copyright 2016-2018 Free Software Foundation, Inc. +-- +-- 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/>. + +package body Pck is + procedure Do_Nothing (A : System.Address) is + begin + null; + end Do_Nothing; +end Pck; diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads new file mode 100644 index 0000000..7f47f95 --- /dev/null +++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads @@ -0,0 +1,19 @@ +-- Copyright 2016-2018 Free Software Foundation, Inc. +-- +-- 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 System; +package Pck is + procedure Do_Nothing (A : System.Address); +end Pck; diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb new file mode 100644 index 0000000..cdbcd36 --- /dev/null +++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb @@ -0,0 +1,30 @@ +-- Copyright 2016-2018 Free Software Foundation, Inc. +-- +-- 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 Pck; use Pck; + +package body Pkg is + procedure Flip (Bits : in out Bits_Type; I : Natural) is + begin + -- Create a new scope to check that the scope match algorithm is fine in + -- the front-end. + declare + B : Boolean renames Bits (I); + begin + B := not B; -- BREAK + Do_Nothing (Bits'Address); + end; + end Flip; +end Pkg; diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads new file mode 100644 index 0000000..eb37f14 --- /dev/null +++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads @@ -0,0 +1,21 @@ +-- Copyright 2016-2018 Free Software Foundation, Inc. +-- +-- 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/>. + +package Pkg is + type Bits_Type is array (1 .. 10) of Boolean + with Pack => True; + + procedure Flip (Bits : in out Bits_Type; I : Natural); +end Pkg; |