From: Yannick Moy <m...@adacore.com>

Spec or body may not be in a list for subunit.

gcc/ada/

        * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add guard.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/inline.adb | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index 98bed860760..b7a6cc90cd2 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;
-- 
2.43.2

Reply via email to