aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch3.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2015-02-20 10:08:30 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2015-02-20 10:08:30 +0100
commit07a64c021a8fbd6df4d411b9852cfa95afb1cf08 (patch)
tree004a9fe35a9f9bd2e48653c6dd78f6166ff6c825 /gcc/ada/exp_ch3.adb
parent283b768c860d632cb50af82a459a9f4c985f3cbf (diff)
downloadgcc-07a64c021a8fbd6df4d411b9852cfa95afb1cf08.zip
gcc-07a64c021a8fbd6df4d411b9852cfa95afb1cf08.tar.gz
gcc-07a64c021a8fbd6df4d411b9852cfa95afb1cf08.tar.bz2
[multiple changes]
2015-02-20 Robert Dewar <dewar@adacore.com> * sem_res.adb: Minor reformatting. * exp_ch9.adb (Build_Protected_Spec): Copy Aliased setting when building spec. * sem_ch13.adb (Analyze_Aspect_Specifications): Exclude Boolean aspects from circuitry setting delay required to false if the argument is an integer literal. 2015-02-20 Ed Schonberg <schonberg@adacore.com> * einfo.ads. einfo.adb (Partial_View_Has_Unknown_Discr): New flag on type entities, to enforce AI12-0133: default initialization of types whose partial view has unknown discriminants does not get an invariant check, because clients of the unit can never declare objects of such types. * sem_ch3.adb (Find_Type_Name); Set new flag Partial_View_Has_Unknown_Discr when needed. * exp_ch3.adb (Expand_N_Object_Declaration): Use flag to suppress generation of invariant call on default-initialized object. From-SVN: r220836
Diffstat (limited to 'gcc/ada/exp_ch3.adb')
-rw-r--r--gcc/ada/exp_ch3.adb9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index a8e4137..095e233 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -5503,10 +5503,13 @@ package body Exp_Ch3 is
Ensure_Freeze_Node (Def_Id);
Set_Has_Delayed_Freeze (Def_Id);
Set_Is_Frozen (Def_Id, False);
- Append_Freeze_Action (Def_Id,
- Make_Invariant_Call (New_Occurrence_Of (Def_Id, Loc)));
- else
+ if not Partial_View_Has_Unknown_Discr (Typ) then
+ Append_Freeze_Action (Def_Id,
+ Make_Invariant_Call (New_Occurrence_Of (Def_Id, Loc)));
+ end if;
+
+ elsif not Partial_View_Has_Unknown_Discr (Typ) then
Insert_After (N,
Make_Invariant_Call (New_Occurrence_Of (Def_Id, Loc)));
end if;