diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/info_addr_mixed_case.exp | 42 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb | 21 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads | 35 |
5 files changed, 127 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 500dbddf1c..b1be7e393c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-01-04 Joel Brobecker <brobecker@adacore.com> + + PR gdb/22670 + * gdb.ada/info_addr_mixed_case: New testcase. + 2018-01-03 Xavier Roirand <roirand@adacore.com> * gdb.ada/excep_handle.exp: New testcase. diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp b/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp new file mode 100644 index 0000000000..e9fce0d93c --- /dev/null +++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp @@ -0,0 +1,42 @@ +# Copyright 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 foo + +if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } { + return -1 +} + +clean_restart ${testfile} + +set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb] +if ![runto "foo.adb:$bp_location" ] then { + perror "Couldn't run ${testfile}" + return +} + +# The following test exercises the situation when uppercase letters +# are used in the name of the symbol passed to the "info address" +# command. This should not make a difference, as the language is +# Ada, and Ada is case-insensitive. + +# commit b5ec771e60c1a0863e51eb491c85c674097e9e13 (Introduce +# lookup_name_info and generalize Ada's FULL/WILD name matching) +# caused the following test to fail. KFAIL it while investigating... +setup_kfail gdb/22670 "*-*-*" +gdb_test "info address My_Table" \ + "Symbol \"pck\\.my_table\" is static storage at address $hex\\." diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb b/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb new file mode 100644 index 0000000000..0028fdaad3 --- /dev/null +++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb @@ -0,0 +1,21 @@ +-- Copyright 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; + +procedure Foo is +begin + Do_Nothing (My_Table'Address); -- START +end Foo; diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb new file mode 100644 index 0000000000..20570405d0 --- /dev/null +++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb @@ -0,0 +1,24 @@ +-- Copyright 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/info_addr_mixed_case/pck.ads b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads new file mode 100644 index 0000000000..0a786ccf4d --- /dev/null +++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads @@ -0,0 +1,35 @@ +-- Copyright 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 + + type Float_Array is array (Integer range <>) of Integer; + type Float_Ptr is access Float_Array; + + type Table_Type is (One, Two, Three, Four, Five); + type New_Table_Array is array (Table_Type) of Float_Ptr; + + My_Table : New_Table_Array := (others => new Float_Array'((4 => 16#DE#, + 5 => 16#AD#))); + + My_F : Float_Ptr := new Float_Array'(4 => 16#BE#, + 5 => 16#EF#); + + procedure Do_Nothing (A : System.Address); + +end Pck; + |