diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-20 11:02:51 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-20 11:02:51 +0000 |
commit | f4e9d48dc50e2e40a43c87a9ab53f56f42a6a1d3 (patch) | |
tree | c7e676ade7a5304276c3b334bd132222b6b62905 /gcc/ada/exp_aggr.adb | |
parent | 90deca2e15868dfb5ef0589a4154e1e642a8eed0 (diff) | |
download | gcc-f4e9d48dc50e2e40a43c87a9ab53f56f42a6a1d3.tar.gz |
2008-08-20 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
confusion between partial and full views of an ancestor of the context
type when the parent is a private extension declared in a parent unit,
and full views are available for the context type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139269 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_aggr.adb')
-rw-r--r-- | gcc/ada/exp_aggr.adb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb index bc3b954fb6c..8a59879b0e0 100644 --- a/gcc/ada/exp_aggr.adb +++ b/gcc/ada/exp_aggr.adb @@ -2547,9 +2547,13 @@ package body Exp_Aggr is -- in the limited case, the ancestor part must be either a -- function call (possibly qualified, or wrapped in an unchecked -- conversion) or aggregate (definitely qualified). + -- The ancestor part can also be a function call (that may be + -- transformed into an explicit dereference) or a qualification + -- of one such. elsif Is_Limited_Type (Etype (A)) and then Nkind (Unqualify (A)) /= N_Function_Call -- aggregate? + and then Nkind (Unqualify (A)) /= N_Explicit_Dereference and then (Nkind (Unqualify (A)) /= N_Unchecked_Type_Conversion or else |