summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_aggr.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-08-20 11:02:51 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-08-20 11:02:51 +0000
commitf4e9d48dc50e2e40a43c87a9ab53f56f42a6a1d3 (patch)
treec7e676ade7a5304276c3b334bd132222b6b62905 /gcc/ada/exp_aggr.adb
parent90deca2e15868dfb5ef0589a4154e1e642a8eed0 (diff)
downloadgcc-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.adb4
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