aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_aggr.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2017-09-08 12:11:07 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2017-09-08 12:11:07 +0200
commit72a266372b5f4ce60568c0741b8c99415cf9cb6e (patch)
tree8e1841fc53228fa10a28187f264d68109d26a652 /gcc/ada/sem_aggr.adb
parentdb174c984559f8cc7f132a2aaae32b123051a38e (diff)
downloadgcc-72a266372b5f4ce60568c0741b8c99415cf9cb6e.zip
gcc-72a266372b5f4ce60568c0741b8c99415cf9cb6e.tar.gz
gcc-72a266372b5f4ce60568c0741b8c99415cf9cb6e.tar.bz2
[multiple changes]
2017-09-08 Arnaud Charlet <charlet@adacore.com> * exp_intr.adb (Append_Entity_Name): Move to ... * sem_util.ads, sem_util.adb: ... here to share it. (Subprogram_Name): New subprogram, to compute the name of the enclosing subprogram/entity. * errutil.adb (Error_Msg): Fill new field Node. * erroutc.ads (Subprogram_Name_Ptr): New. (Error_Msg_Object): New field Node. * erroutc.adb (dmsg, Output_Msg_Text): Take new field Node into account. * errout.adb (Error_Msg): New variant with node id parameter. Fill new parameter Node when emitting messages. Revert previous changes for Include_Subprogram_In_Messages. * sem_ch5.adb (Check_Unreachable_Code): Supply Node parameter when generating warning message. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * par-ch4.adb (P_Iterated_Component_Association): Place construct under -gnat2020 flag, given that it is a future feature of the language. * sem_aggr.adb (Resolve_Iterated_Component_Association): Mark defining identifier as referenced to prevent spurious warnings: corresponding loop is expanded into one or more loops whose variable has the same name, and the expression uses those names and not the original one. From-SVN: r251883
Diffstat (limited to 'gcc/ada/sem_aggr.adb')
-rw-r--r--gcc/ada/sem_aggr.adb5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb
index a726904..7a37bdd 100644
--- a/gcc/ada/sem_aggr.adb
+++ b/gcc/ada/sem_aggr.adb
@@ -1694,13 +1694,16 @@ package body Sem_Aggr is
-- may have several choices, each one leading to a loop, so we create
-- this variable only once to prevent homonyms in this scope.
-- The expression has to be analyzed once the index variable is
- -- directly visible.
+ -- directly visible. Mark the variable as referenced to prevent
+ -- spurious warnings, given that subsequent uses of its name in the
+ -- expression will reference the internal (synonym) loop variable.
if No (Scope (Id)) then
Enter_Name (Id);
Set_Etype (Id, Index_Typ);
Set_Ekind (Id, E_Variable);
Set_Scope (Id, Ent);
+ Set_Referenced (Id);
end if;
Push_Scope (Ent);