From 4cac730ccc741a9bf780390c2703163edc6da470 Mon Sep 17 00:00:00 2001 From: Javier Miranda Date: Wed, 14 Aug 2019 09:51:29 +0000 Subject: [PATCH] [Ada] Sem_Util: fix a bug in New_Copy_Tree No impact on GCC-based compilation. 2019-08-14 Javier Miranda gcc/ada/ * sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement): Update the Chars attribute of identifiers. From-SVN: r274455 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/sem_util.adb | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 1d139475aee..c661a3832dd 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2019-08-14 Javier Miranda + + * sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement): + Update the Chars attribute of identifiers. + 2019-08-14 Yannick Moy * sem_spark.adb, sem_spark.ads (Is_Legal): New function exposed diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index db9233a5391..10f8ffb940e 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -20427,6 +20427,21 @@ package body Sem_Util is Update_First_Real_Statement (Old_HSS => N, New_HSS => Result); + + -- Update the Chars attribute of identifiers + + elsif Nkind (N) = N_Identifier then + + -- The Entity field of identifiers that denote aspects is used + -- to store arbitrary expressions (and hence we must check that + -- they reference an actual entity before copying their Chars + -- value). + + if Present (Entity (Result)) + and then Nkind (Entity (Result)) in N_Entity + then + Set_Chars (Result, Chars (Entity (Result))); + end if; end if; end if; -- 2.30.2