From cc1fcd387984da9cde6d7314345d366789929d57 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Fri, 10 Sep 2021 22:27:20 +0200 Subject: [PATCH] [Ada] Propagate Ghost status from parent to derived subprograms gcc/ada/ * sem_ch3.adb (Derive_Subprogram): Copy ghost status from parent to derived subprogram. --- gcc/ada/sem_ch3.adb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/ada/sem_ch3.adb b/gcc/ada/sem_ch3.adb index bf81f763faae..f1a56ad2b773 100644 --- a/gcc/ada/sem_ch3.adb +++ b/gcc/ada/sem_ch3.adb @@ -16111,6 +16111,14 @@ package body Sem_Ch3 is Set_No_Return (New_Subp, No_Return (Parent_Subp)); + -- If the parent subprogram is marked as Ghost, then so is the derived + -- subprogram. The ghost policy for the derived subprogram is set from + -- the effective ghost policy at the point of derived type declaration. + + if Is_Ghost_Entity (Parent_Subp) then + Set_Is_Ghost_Entity (New_Subp); + end if; + -- A derived function with a controlling result is abstract. If the -- Derived_Type is a nonabstract formal generic derived type, then -- inherited operations are not abstract: the required check is done at -- 2.47.2