aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2020-02-24 13:37:58 -0500
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-09 04:09:00 -0400
commit54025948c0a4cad05cc22fe67d104e5e3ac9b0de (patch)
tree1cc8433adce51ad92a0e20c794139707fba3137e /gcc
parent6859ef489341d436ebf2fd5d41282c4f68b0283d (diff)
downloadgcc-54025948c0a4cad05cc22fe67d104e5e3ac9b0de.zip
gcc-54025948c0a4cad05cc22fe67d104e5e3ac9b0de.tar.gz
gcc-54025948c0a4cad05cc22fe67d104e5e3ac9b0de.tar.bz2
[Ada] Spurious error on instantiations with Taft_Amendment types and tasks
2020-06-09 Ed Schonberg <schonberg@adacore.com> 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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/exp_ch9.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb
index 36baf6f..2efa6d1 100644
--- a/gcc/ada/exp_ch9.adb
+++ b/gcc/ada/exp_ch9.adb
@@ -3469,10 +3469,13 @@ package body Exp_Ch9 is
-- Generate:
-- <Ptr_Typ>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,