From: Yannick Moy Date: Tue, 7 Jun 2022 09:00:56 +0000 (+0200) Subject: [Ada] Fix spurious error on object renaming with ghost type X-Git-Tag: basepoints/gcc-14~5718 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=95e2844ef8fa68f7abd45646bae8b4362614bf9c;p=thirdparty%2Fgcc.git [Ada] Fix spurious error on object renaming with ghost type Renaming of an object of ghost type leads to a spurious error. Now fixed. gcc/ada/ * ghost.adb (Is_OK_Ghost_Context): Detect ghost type inside object renaming. --- diff --git a/gcc/ada/ghost.adb b/gcc/ada/ghost.adb index 25b9a28fa01..8f23cbdedfe 100644 --- a/gcc/ada/ghost.adb +++ b/gcc/ada/ghost.adb @@ -508,7 +508,16 @@ package body Ghost is elsif Nkind (Parent (Par)) in N_Generic_Instantiation | N_Renaming_Declaration | N_Generic_Renaming_Declaration - and then Par = Name (Parent (Par)) + and then Par = Name (Parent (Par)) + then + return True; + + -- In the case of the renaming of a ghost object, the type + -- itself may be ghost. + + elsif Nkind (Parent (Par)) = N_Object_Renaming_Declaration + and then (Par = Subtype_Mark (Parent (Par)) + or else Par = Access_Definition (Parent (Par))) then return True;