From: Steve Baird <ba...@adacore.com> 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. Tested on x86_64-pc-linux-gnu, committed on master. --- 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 e00addd0152..d03761b1e30 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.40.0