diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-24 16:38:50 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2013-04-24 16:38:50 +0200 |
commit | 24778dbb9a732e8c626807b1a5f4bfe8cec09a58 (patch) | |
tree | 5d9560ad2ff07bd6a8cc33c873fd6dcf04cff4a0 /gcc/ada/sem_ch4.adb | |
parent | 8a8ac7e3bd0d316ec3f809e29574e9900847d26a (diff) | |
download | gcc-24778dbb9a732e8c626807b1a5f4bfe8cec09a58.zip gcc-24778dbb9a732e8c626807b1a5f4bfe8cec09a58.tar.gz gcc-24778dbb9a732e8c626807b1a5f4bfe8cec09a58.tar.bz2 |
[multiple changes]
2013-04-24 Ed Schonberg <schonberg@adacore.com>
* sem_ch7.adb (Swap_Private_Dependents): New internal routine
to Install_Private_Declarations, to make the installation of
private dependents recursive in the presence of child units.
* sem_ch3.adb (Build_Discriminated_Subtype): Initialize properly
the Private_Dependents of a private subtype.
2013-04-24 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_Loop_Entry_Attribute): Update the
retrieval of the block declarations.
* par-ch4.adb (P_Name): Let the name parsing machinery create
a sequence of nested indexed components for attribute Loop_Entry.
* sem_attr.adb (Analyze_Attribute): Add local constant
Context. Reimplement part of the analysis of attribute Loop_Entry.
(Convert_To_Indexed_Component): Removed.
* sem_ch4.adb (Analyze_Indexed_Component_Form): Do not analyze
an indexed component after it has been rewritten into attribute
Loop_Entry.
From-SVN: r198240
Diffstat (limited to 'gcc/ada/sem_ch4.adb')
-rw-r--r-- | gcc/ada/sem_ch4.adb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index e78ce33..ae69805 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -2388,12 +2388,20 @@ package body Sem_Ch4 is Analyze (P); + -- If P is an explicit dereference whose prefix is of a remote access- + -- to-subprogram type, then N has already been rewritten as a subprogram + -- call and analyzed. + if Nkind (N) in N_Subprogram_Call then + return; - -- If P is an explicit dereference whose prefix is of a - -- remote access-to-subprogram type, then N has already - -- been rewritten as a subprogram call and analyzed. + -- When the prefix is attribute 'Loop_Entry and the sole expression of + -- the indexed component denotes a loop name, the indexed form is turned + -- into an attribute reference. + elsif Nkind (N) = N_Attribute_Reference + and then Attribute_Name (N) = Name_Loop_Entry + then return; end if; |