From: Steve Baird Date: Thu, 10 Aug 2023 23:21:34 +0000 (-0700) Subject: ada: Compiler hangs on invalid postcondition X-Git-Tag: basepoints/gcc-15~6453 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9fc6f15bfe7ebfeef6ebbea48b2c551f79cd25bd;p=thirdparty%2Fgcc.git 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. --- 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;