diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-02-20 10:08:30 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-02-20 10:08:30 +0100 |
commit | 07a64c021a8fbd6df4d411b9852cfa95afb1cf08 (patch) | |
tree | 004a9fe35a9f9bd2e48653c6dd78f6166ff6c825 /gcc/ada/exp_ch3.adb | |
parent | 283b768c860d632cb50af82a459a9f4c985f3cbf (diff) | |
download | gcc-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.adb | 9 |
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; |