From: Piotr Trojanek Date: Thu, 2 Jun 2022 15:15:22 +0000 (+0200) Subject: [Ada] Fix clearly unintentional dead analysis of attribute Code_Address X-Git-Tag: basepoints/gcc-14~5731 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7b9ae8e806d6afcf23f970fa18ce261024eb4414;p=thirdparty%2Fgcc.git [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. --- 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;