aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.ada/overload_menu_crash
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2022-10-20 10:55:35 -0600
committerTom Tromey <tromey@adacore.com>2022-11-15 11:55:44 -0700
commit2c2316c5fd2bf6310c21c1c88a940be8494d1870 (patch)
tree018b7167aa733721a2270943301b279fb9def6f5 /gdb/testsuite/gdb.ada/overload_menu_crash
parentb0e8fa7ff0dc9a32ff71df0e895aa7fb5089fcfa (diff)
downloadbinutils-2c2316c5fd2bf6310c21c1c88a940be8494d1870.zip
binutils-2c2316c5fd2bf6310c21c1c88a940be8494d1870.tar.gz
binutils-2c2316c5fd2bf6310c21c1c88a940be8494d1870.tar.bz2
Fix crash in ada_print_type
The "varstring" paramter to ada_print_type can be null, but one spot failed to check this. This could cause a crash in some situations. As this is Ada-specific, and we've been using it internally at AdaCore for a while, I am going to push it.
Diffstat (limited to 'gdb/testsuite/gdb.ada/overload_menu_crash')
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash/main.adb21
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb21
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads22
3 files changed, 64 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb b/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb
new file mode 100644
index 0000000..3d3e516
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb
@@ -0,0 +1,21 @@
+-- Copyright 2022 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;
+
+procedure Main is
+begin
+ Pck.Inner.Regtest := Pck.Regtest (null); -- BREAK
+end Main;
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb
new file mode 100644
index 0000000..cf01fb3
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb
@@ -0,0 +1,21 @@
+-- Copyright 2022 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
+ function Regtest (A : access Integer) return Boolean is
+ begin
+ return True;
+ end Regtest;
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads
new file mode 100644
index 0000000..f0ff4f4
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads
@@ -0,0 +1,22 @@
+-- Copyright 2022 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 Pck is
+ package Inner is
+ Regtest : Boolean;
+ end Inner;
+
+ function Regtest (A : access Integer) return Boolean;
+end Pck;