diff options
author | Joel Brobecker <brobecker@gnat.com> | 2008-01-04 21:40:34 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2008-01-04 21:40:34 +0000 |
commit | 0ecbca72c8eb0a38d92563e398c456b26fc31343 (patch) | |
tree | cf7cee66439a0ba5121f17d7caf58ebce6b1d805 | |
parent | babe1480e8f35a2e5cd8394e2d990863387a9347 (diff) | |
download | binutils-0ecbca72c8eb0a38d92563e398c456b26fc31343.tar.gz binutils-0ecbca72c8eb0a38d92563e398c456b26fc31343.tar.bz2 binutils-0ecbca72c8eb0a38d92563e398c456b26fc31343.zip |
* gdb.ada/homonym/homonym.ads, gdb.ada/homonym/homonym.adb,
gdb.ada/homonym/homonym_main.adb: New files.
* gdb.ada/homonym.exp: New testcase.
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/homonym.exp | 94 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/homonym/homonym.adb | 61 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/homonym/homonym.ads | 20 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/homonym/homonym_main.adb | 21 |
5 files changed, 202 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 20a89de3dfd..a44408bbc83 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2008-01-04 Joel Brobecker <brobecker@adacore.com> + * gdb.ada/homonym/homonym.ads, gdb.ada/homonym/homonym.adb, + gdb.ada/homonym/homonym_main.adb: New files. + * gdb.ada/homonym.exp: New testcase. + +2008-01-04 Joel Brobecker <brobecker@adacore.com> + * gdb.ada/packed_array.exp: Add testing of references to a packed array. diff --git a/gdb/testsuite/gdb.ada/homonym.exp b/gdb/testsuite/gdb.ada/homonym.exp new file mode 100644 index 00000000000..ca020d56283 --- /dev/null +++ b/gdb/testsuite/gdb.ada/homonym.exp @@ -0,0 +1,94 @@ +# Copyright 2008 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/>. + +if $tracelevel then { + strace $tracelevel +} + +load_lib "ada.exp" + +set testdir "homonym" +set testfile "${testdir}/homonym_main" +set srcfile ${srcdir}/${subdir}/${testfile}.adb +set binfile ${objdir}/${subdir}/${testfile} + +file mkdir ${objdir}/${subdir}/${testdir} +if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } { + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +set bp_location [gdb_get_line_number "BREAK_1" ${testdir}/homonym.adb] +runto "homonym.adb:$bp_location" + +# Check the variables and types defined inside the current scope. +# There are some homonyms in a different scope, so we want to make +# sure that the debugger doesn't get mixed up. + +gdb_test "ptype local_type" \ + "type = range -100 \\.\\. 100" \ + "ptype local_type at BREAK_1" + +gdb_test "ptype local_type_subtype" \ + "type = range -100 \\.\\. 100" \ + "ptype local_type_subtype at BREAK_1" + +gdb_test "ptype int_type" \ + "type = range -100 \\.\\. 100" \ + "ptype int_type at BREAK_1" + +gdb_test "ptype lcl" \ + "type = range -100 \\.\\. 100" \ + "ptype lcl at BREAK_1" + +gdb_test "print lcl" \ + "29" \ + "print lcl at BREAK_1" + +# Now, continue until reaching BREAK_2, and do the same commands +# as above. The result should be different since the definitions +# in the new scope are different. + +set bp_location [gdb_get_line_number "BREAK_2" ${testdir}/homonym.adb] +gdb_test "break homonym.adb:$bp_location" \ + "Breakpoint \[0-9\]+ at 0x\[0-9a-fA-F\]+: file .*homonym\.adb, line \[0-9\]+\." \ + "break at BREAK_2" + +gdb_test "continue" \ + ".*Breakpoint \[0-9\]+, homonym\\.get_value \\(\\) at .*homonym\\.adb:.*" \ + "continue until BREAK_2" + +gdb_test "ptype local_type" \ + "type = range 1 \\.\\. 19740804" \ + "ptype local_type at BREAK_2" + +gdb_test "ptype local_type_subtype" \ + "type = range 1 \\.\\. 19740804" \ + "ptype local_type_subtype at BREAK_2" + +gdb_test "ptype lcl" \ + "type = range 1 \\.\\. 19740804" \ + "ptype lcl at BREAK_2" + +gdb_test "print lcl" \ + "17" \ + "print lcl at BREAK_2" + + + diff --git a/gdb/testsuite/gdb.ada/homonym/homonym.adb b/gdb/testsuite/gdb.ada/homonym/homonym.adb new file mode 100644 index 00000000000..e22d77d1c71 --- /dev/null +++ b/gdb/testsuite/gdb.ada/homonym/homonym.adb @@ -0,0 +1,61 @@ +-- Copyright 2008 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 Homonym is + + type Integer_Range is new Integer range -100 .. 100; + type Positive_Range is new Positive range 1 .. 19740804; + + --------------- + -- Get_Value -- + --------------- + + function Get_Value return Integer_Range + is + subtype Local_Type is Integer_Range; + subtype Local_Type_Subtype is Local_Type; + subtype Int_Type is Integer_Range; + Lcl : Local_Type := 29; + begin + return Lcl; -- BREAK_1 + end Get_Value; + + --------------- + -- Get_Value -- + --------------- + + function Get_Value return Positive_Range + is + subtype Local_Type is Positive_Range; + subtype Local_Type_Subtype is Local_Type; + subtype Pos_Type is Positive_Range; + Lcl : Local_Type := 17; + begin + return Lcl; -- BREAK_2 + end Get_Value; + + ---------------- + -- Start_Test -- + ---------------- + + procedure Start_Test is + Int : Integer_Range; + Pos : Positive_Range; + begin + Int := Get_Value; + Pos := Get_Value; + end Start_Test; + +end Homonym; diff --git a/gdb/testsuite/gdb.ada/homonym/homonym.ads b/gdb/testsuite/gdb.ada/homonym/homonym.ads new file mode 100644 index 00000000000..52d1ade9174 --- /dev/null +++ b/gdb/testsuite/gdb.ada/homonym/homonym.ads @@ -0,0 +1,20 @@ +-- Copyright 2008 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 Homonym is + + procedure Start_Test; + +end Homonym; diff --git a/gdb/testsuite/gdb.ada/homonym/homonym_main.adb b/gdb/testsuite/gdb.ada/homonym/homonym_main.adb new file mode 100644 index 00000000000..e2f25c6875e --- /dev/null +++ b/gdb/testsuite/gdb.ada/homonym/homonym_main.adb @@ -0,0 +1,21 @@ +-- Copyright 2008 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 Homonym; + +procedure Homonym_Main is +begin + Homonym.Start_Test; +end Homonym_Main; |