From: Ed Schonberg Date: Mon, 24 Feb 2020 18:37:58 +0000 (-0500) Subject: [Ada] Spurious error on instantiations with Taft_Amendment types and tasks X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=54025948c0a4cad05cc22fe67d104e5e3ac9b0de;p=gcc.git [Ada] Spurious error on instantiations with Taft_Amendment types and tasks 2020-06-09 Ed Schonberg gcc/ada/ * exp_ch9.adb (Build_Master_Renaming): Make name in renaming declaration unique by adding a numeric suffix, to prevent accidental name conflict when several instantiations of a package containing an access_to_incomplete type that designate tasks appear in the same scope. --- diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb index 36baf6f74e5..2efa6d1b21f 100644 --- a/gcc/ada/exp_ch9.adb +++ b/gcc/ada/exp_ch9.adb @@ -3469,10 +3469,13 @@ package body Exp_Ch9 is -- Generate: -- M : Master_Id renames _Master; + -- and add a numeric suffix to the name to ensure that it is + -- unique in case other access types in nested constructs + -- are homonyms of this one. Master_Id := Make_Defining_Identifier (Loc, - New_External_Name (Chars (Ptr_Typ), 'M')); + New_External_Name (Chars (Ptr_Typ), 'M', -1)); Master_Decl := Make_Object_Renaming_Declaration (Loc,