aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYannick Moy <moy@adacore.com>2023-12-19 10:52:38 +0100
committerMarc Poulhiès <poulhies@adacore.com>2024-05-06 11:11:27 +0200
commitbd2462a8473b7ee7cabd4040553ae13606273723 (patch)
treecb524c0b4ba5dcfb0e41b39f14a342de49861141
parent9bc49f5ac1e1140f00f488f5d05294541079fb1b (diff)
downloadgcc-bd2462a8473b7ee7cabd4040553ae13606273723.zip
gcc-bd2462a8473b7ee7cabd4040553ae13606273723.tar.gz
gcc-bd2462a8473b7ee7cabd4040553ae13606273723.tar.bz2
ada: Fix detection of (Un)Hide_Info pragma in GNATprove mode
Spec or body may not be in a list for subunit. gcc/ada/ * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add guard.
-rw-r--r--gcc/ada/inline.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index 98bed86..b7a6cc9 100644
--- a/gcc/ada/inline.adb
+++ b/gcc/ada/inline.adb
@@ -1819,6 +1819,7 @@ package body Inline is
begin
if Present (Spec_Id)
+ and then Is_List_Member (Unit_Declaration_Node (Spec_Id))
and then Has_Hide_Unhide_Pragma
(Next (Unit_Declaration_Node (Spec_Id)))
then
@@ -1829,7 +1830,9 @@ package body Inline is
Subp_Body : constant N_Subprogram_Body_Id :=
Unit_Declaration_Node (Body_Id);
begin
- return Has_Hide_Unhide_Pragma (Next (Subp_Body))
+ return
+ (Is_List_Member (Subp_Body)
+ and then Has_Hide_Unhide_Pragma (Next (Subp_Body)))
or else
Has_Hide_Unhide_Pragma (First (Declarations (Subp_Body)));
end;