From a3e2584e85d91d0ab076c3f603bc0179921dbd82 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Fri, 29 Jan 2021 12:16:17 +0100 Subject: [PATCH] [Ada] Attribute Address is not an interfering context in SPARK gcc/ada/ * sem_res.adb (Flag_Object): Ignore prefixes of attribute Address. --- gcc/ada/sem_res.adb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index bd950f5df86..898f317f8f4 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.