From 07a64c021a8fbd6df4d411b9852cfa95afb1cf08 Mon Sep 17 00:00:00 2001 From: Arnaud Charlet <charlet@gcc.gnu.org> Date: Fri, 20 Feb 2015 10:08:30 +0100 Subject: [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 --- gcc/ada/exp_ch3.adb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/ada/exp_ch3.adb') 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; -- cgit v1.1