aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.ada
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2008-01-04 21:40:34 +0000
committerJoel Brobecker <brobecker@gnat.com>2008-01-04 21:40:34 +0000
commit0ecbca72c8eb0a38d92563e398c456b26fc31343 (patch)
treecf7cee66439a0ba5121f17d7caf58ebce6b1d805 /gdb/testsuite/gdb.ada
parentbabe1480e8f35a2e5cd8394e2d990863387a9347 (diff)
downloadgdb-0ecbca72c8eb0a38d92563e398c456b26fc31343.zip
gdb-0ecbca72c8eb0a38d92563e398c456b26fc31343.tar.gz
gdb-0ecbca72c8eb0a38d92563e398c456b26fc31343.tar.bz2
* gdb.ada/homonym/homonym.ads, gdb.ada/homonym/homonym.adb,
gdb.ada/homonym/homonym_main.adb: New files. * gdb.ada/homonym.exp: New testcase.
Diffstat (limited to 'gdb/testsuite/gdb.ada')
-rw-r--r--gdb/testsuite/gdb.ada/homonym.exp94
-rw-r--r--gdb/testsuite/gdb.ada/homonym/homonym.adb61
-rw-r--r--gdb/testsuite/gdb.ada/homonym/homonym.ads20
-rw-r--r--gdb/testsuite/gdb.ada/homonym/homonym_main.adb21
4 files changed, 196 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.ada/homonym.exp b/gdb/testsuite/gdb.ada/homonym.exp
new file mode 100644
index 0000000..ca020d5
--- /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 0000000..e22d77d
--- /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 0000000..52d1ade
--- /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 0000000..e2f25c6
--- /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;