From: Piotr Trojanek Date: Fri, 29 Jan 2021 11:16:17 +0000 (+0100) Subject: [Ada] Attribute Address is not an interfering context in SPARK X-Git-Tag: basepoints/gcc-13~7716 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3e2584e85d91d0ab076c3f603bc0179921dbd82;p=thirdparty%2Fgcc.git [Ada] Attribute Address is not an interfering context in SPARK gcc/ada/ * sem_res.adb (Flag_Object): Ignore prefixes of attribute Address. --- diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index bd950f5df861..898f317f8f46 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -3749,6 +3749,19 @@ package body Sem_Res is begin case Nkind (N) is + + -- Do not consider object name appearing in the prefix of + -- attribute Address as a read. + + when N_Attribute_Reference => + + -- Prefix of attribute Address denotes an object, program + -- unit, or label; none of them needs to be flagged here. + + if Attribute_Name (N) = Name_Address then + return Skip; + end if; + -- Do not consider nested function calls because they have -- already been processed during their own resolution.