From: Piotr Trojanek Date: Thu, 26 Sep 2024 06:40:28 +0000 (+0200) Subject: ada: Fix asymmetry in resolution of unary intrinsic operators X-Git-Tag: basepoints/gcc-16~4663 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9328cb4b106a6b9afe3359e0287ece496b8e277;p=thirdparty%2Fgcc.git ada: Fix asymmetry in resolution of unary intrinsic operators Resolution of binary and unary intrinsic operators differed when expansion was inactive. In particular, this affected GNATprove handling of Ada.Real_Time."abs" operator. This patch makes unary resolution behave like binary resolution. gcc/ada/ChangeLog: * sem_res.adb (Resolve_Intrinsic_Unary_Operator): Disable when expansion is inactive. --- diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index 6a2680b6b1da..0abdeee8fbee 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -9972,6 +9972,13 @@ package body Sem_Res is Arg2 : Node_Id; begin + -- We must preserve the original entity in a generic setting, so that + -- the legality of the operation can be verified in an instance. + + if not Expander_Active then + return; + end if; + Op := Entity (N); while Scope (Op) /= Standard_Standard loop Op := Homonym (Op);