From 9fc6f15bfe7ebfeef6ebbea48b2c551f79cd25bd Mon Sep 17 00:00:00 2001 From: Steve Baird Date: Thu, 10 Aug 2023 16:21:34 -0700 Subject: [PATCH] ada: Compiler hangs on invalid postcondition In some cases involving an illegal reference to F'Result in the postcondition for a function not named F, the compiler would hang instead of correctly diagnosing the error. gcc/ada/ * sem_attr.adb (Denote_Same_Function): Handle the case where Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns an empty result. --- gcc/ada/sem_attr.adb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index e00addd0152f..d03761b1e30e 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -5921,7 +5921,9 @@ package body Sem_Attr is -- When a qualified name is used for the prefix, homonyms may come -- before the current function in the homonym chain. - elsif Has_Homonym (Pref_Id) then + elsif Has_Homonym (Pref_Id) + and then Present (Homonym (Pref_Id)) + then return Denote_Same_Function (Homonym (Pref_Id), Spec_Id); end if; -- 2.47.2