diff options
author | Tom Tromey <tromey@adacore.com> | 2022-10-20 10:55:35 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2022-11-15 11:55:44 -0700 |
commit | 2c2316c5fd2bf6310c21c1c88a940be8494d1870 (patch) | |
tree | 018b7167aa733721a2270943301b279fb9def6f5 /gdb/testsuite/gdb.ada/overload_menu_crash | |
parent | b0e8fa7ff0dc9a32ff71df0e895aa7fb5089fcfa (diff) | |
download | binutils-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.adb | 21 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb | 21 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads | 22 |
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; |