aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorThomas Quinot <quinot@adacore.com>2016-05-02 09:29:09 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2016-05-02 11:29:09 +0200
commita25ad01cfbfa6efad44bc5500cc3ce39f1fffd22 (patch)
tree9fba2956e30f19e99d786e16a1535e6895dffefc /gcc/ada
parent558fbeb042af167d97f83ece701ad1c6786193e7 (diff)
downloadgcc-a25ad01cfbfa6efad44bc5500cc3ce39f1fffd22.zip
gcc-a25ad01cfbfa6efad44bc5500cc3ce39f1fffd22.tar.gz
gcc-a25ad01cfbfa6efad44bc5500cc3ce39f1fffd22.tar.bz2
freeze.adb (Check_Component_Storage_Order): Get full view of component type.
2016-05-02 Thomas Quinot <quinot@adacore.com> * freeze.adb (Check_Component_Storage_Order): Get full view of component type. From-SVN: r235716
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/freeze.adb7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index f867b82..c4fa0ae 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2016-05-02 Thomas Quinot <quinot@adacore.com>
+
+ * freeze.adb (Check_Component_Storage_Order): Get full view of
+ component type.
+
2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb, freeze.adb, sem_res.adb, s-stposu.adb, repinfo.adb:
diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index bbb07af..1fce947 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -1242,6 +1242,13 @@ package body Freeze is
-- the attribute definition clause is attached to the first subtype.
Comp_Type := Base_Type (Comp_Type);
+
+ -- If the base type is incomplete or private, go to full view if known
+
+ if Present (Underlying_Type (Comp_Type)) then
+ Comp_Type := Underlying_Type (Comp_Type);
+ end if;
+
Comp_ADC := Get_Attribute_Definition_Clause
(First_Subtype (Comp_Type),
Attribute_Scalar_Storage_Order);