From 95e2844ef8fa68f7abd45646bae8b4362614bf9c Mon Sep 17 00:00:00 2001 From: Yannick Moy Date: Tue, 7 Jun 2022 11:00:56 +0200 Subject: [PATCH] [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. --- gcc/ada/ghost.adb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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; -- 2.47.2