From 7b9ae8e806d6afcf23f970fa18ce261024eb4414 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Thu, 2 Jun 2022 17:15:22 +0200 Subject: [PATCH] [Ada] Fix clearly unintentional dead analysis of attribute Code_Address A new warning about unreachable code that follows calls to procedures with No_Return would flag a clearly unintentional dead call to Set_Address_Taken in analysis of Code_Address attribute. This patch resurrects the dead code, which is worth fixing regardless of the new warning. gcc/ada/ * sem_attr.adb (Analyze_Attribute): Move call to Set_Address_Taken so that it is executed when the prefix attribute is legal. --- gcc/ada/sem_attr.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ada/sem_attr.adb b/gcc/ada/sem_attr.adb index 20849bf2088..5bf13d1bf19 100644 --- a/gcc/ada/sem_attr.adb +++ b/gcc/ada/sem_attr.adb @@ -3746,11 +3746,11 @@ package body Sem_Attr is Ekind (Entity (P)) /= E_Procedure) then Error_Attr ("invalid prefix for % attribute", P); - Set_Address_Taken (Entity (P)); -- Issue an error if the prefix denotes an eliminated subprogram else + Set_Address_Taken (Entity (P)); Check_For_Eliminated_Subprogram (P, Entity (P)); end if; -- 2.47.2