[Ada] Fix crash on frontend inlining of functions with single returns
authorPiotr Trojanek <trojanek@adacore.com>
Tue, 5 Jul 2022 21:41:43 +0000 (23:41 +0200)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 13 Jul 2022 10:01:16 +0000 (10:01 +0000)
When examining expression of the first declaration of the inlined body
make sure that this declaration is in fact an object declaration.

gcc/ada/

* inline.adb (Has_Single_Return): Add guard for the subsequent
call to Expression.

gcc/ada/inline.adb

index 00c1e03..e0ff67a 100644 (file)
@@ -4648,6 +4648,7 @@ package body Inline is
          return
            Present (Declarations (N))
              and then Present (First (Declarations (N)))
+             and then Nkind (First (Declarations (N))) = N_Object_Declaration
              and then Entity (Expression (Return_Statement)) =
                         Defining_Identifier (First (Declarations (N)));
       end if;