aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch13.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-10-10 14:21:19 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2014-10-10 14:21:19 +0200
commitb9696ffb6e8e8fbb59b0cc925e218e92c2d71be0 (patch)
tree855a30ced6ee7e81f10a0eb96168f1d3102e77ca /gcc/ada/sem_ch13.adb
parent1e3ed0fc933a9c77ddc14f7097dd601d824c2b35 (diff)
downloadgcc-b9696ffb6e8e8fbb59b0cc925e218e92c2d71be0.zip
gcc-b9696ffb6e8e8fbb59b0cc925e218e92c2d71be0.tar.gz
gcc-b9696ffb6e8e8fbb59b0cc925e218e92c2d71be0.tar.bz2
[multiple changes]
2014-10-10 Robert Dewar <dewar@adacore.com> * sem_ch7.adb, einfo.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, freeze.adb, sem_util.adb, sem_res.adb, exp_ch6.adb, exp_ch13.adb, sem_ch6.adb, sem_cat.adb, sem_disp.adb (Is_Subprogram_Or_Generic_Subprogram): New primitive. Use this primitive throughout where appropriate. 2014-10-10 Bob Duff <duff@adacore.com> * a-coinho-shared.ads: Minor reformatting. * s-traceb.adb: Minor clean up. 2014-10-10 Robert Dewar <dewar@adacore.com> * ali.adb (Scan_ALI): Read and process new GP flag on ALI P line. * ali.ads (GNATprove_Mode): New component in ALI table. (GNATprove_Mode_Specified): New global. * gnatbind.adb (Gnatbind): Give fatal error if any file compiled in GNATProve mode. * lib-writ.ads, lib-writ.adb (GP): New flag on P line for GNATProve_Mode. 2014-10-10 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Build_Init_Procedure): Adding assertion. (Build_Init_Statement): Ensure that statements associated with the parent components are located at the beginning of the returned list of statements. 2014-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Inherit_Aspects_At_Freeze_Node): If the full view of a private type T that has a type invariant is a scalar or constrained array type, the base type created for the full view has the same type invariant. From-SVN: r216074
Diffstat (limited to 'gcc/ada/sem_ch13.adb')
-rw-r--r--gcc/ada/sem_ch13.adb9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/sem_ch13.adb b/gcc/ada/sem_ch13.adb
index a73712b..10f4a74 100644
--- a/gcc/ada/sem_ch13.adb
+++ b/gcc/ada/sem_ch13.adb
@@ -10705,6 +10705,15 @@ package body Sem_Ch13 is
if Class_Present (Get_Rep_Item (Typ, Name_Invariant)) then
Set_Has_Inheritable_Invariants (Typ);
end if;
+
+ -- If the full view of the type is a scalar type or array type, the
+ -- implicit base type created for it has the same invariant.
+
+ elsif Has_Invariants (Typ) and then Base_Type (Typ) /= Typ
+ and then not Has_Invariants (Base_Type (Typ))
+ then
+ Set_Has_Invariants (Base_Type (Typ));
+ Set_Invariant_Procedure (Base_Type (Typ), Invariant_Procedure (Typ));
end if;
-- Volatile