[Ada] Fix oversight in implementation of unnesting
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 31 Aug 2022 12:39:08 +0000 (14:39 +0200)
committerMarc Poulhiès <poulhies@adacore.com>
Mon, 12 Sep 2022 08:16:51 +0000 (10:16 +0200)
The pass would traverse generic subprogram bodies, which are not expanded,
thus stumbling on unexpected nodes.

gcc/ada/

* exp_unst.adb (Unnest_Subprograms.Search_Subprograms): Skip the
subprogram bodies that are not to be unnested.

gcc/ada/exp_unst.adb

index 1297f28..9164644 100644 (file)
@@ -2592,6 +2592,8 @@ package body Exp_Unst is
                  and then Is_Library_Level_Entity (Spec_Id)
                then
                   Unnest_Subprogram (Spec_Id, N);
+               else
+                  return Skip;
                end if;
             end;