diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2017-09-08 12:11:07 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2017-09-08 12:11:07 +0200 |
commit | 72a266372b5f4ce60568c0741b8c99415cf9cb6e (patch) | |
tree | 8e1841fc53228fa10a28187f264d68109d26a652 /gcc/ada/sem_aggr.adb | |
parent | db174c984559f8cc7f132a2aaae32b123051a38e (diff) | |
download | gcc-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.adb | 5 |
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); |