From 54025948c0a4cad05cc22fe67d104e5e3ac9b0de Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Mon, 24 Feb 2020 13:37:58 -0500 Subject: [PATCH] [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. --- gcc/ada/exp_ch9.adb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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, -- 2.30.2