[Ada] Fix awkward placement of freeze node for actual subtype
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 10 Oct 2019 15:24:38 +0000 (15:24 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 10 Oct 2019 15:24:38 +0000 (15:24 +0000)
2019-10-10  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the
actual subtype after its declaration when the type of the formal
has a predicate.

From-SVN: r276828

gcc/ada/ChangeLog
gcc/ada/sem_ch6.adb

index 3d58a8d2ae60e1fe874a407b71582ef388a5905b..449c0ab8d969c98ded5b3fb3d556b1674ad7c1b1 100644 (file)
@@ -1,12 +1,5 @@
 2019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
 
-       * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Do not use
-       the Esize of the component to compute its layout, but only the
-       Component_Clause.  Do not issue a warning for the _Tag
-       component.  Also set the Esize of the component at the end of
-       the layout.
-       (Analyze_Record_Representation_Clause): Remove Hbit local
-       variable.  Lay out the Original_Record_Component only if it's
-       distinct from the component.
-       (Check_Record_Representation_Clause): Fix off-by-one bug for the
-       Last_Bit of the artificial clause built for the _Tag component.
\ No newline at end of file
+       * sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the
+       actual subtype after its declaration when the type of the formal
+       has a predicate.
\ No newline at end of file
index eb6768d3ae2ce0e28dc5f714f83f01d8c769816f..b96a5fda8f8ce0553611030502633a837a23d0d2 100644 (file)
@@ -12038,7 +12038,7 @@ package body Sem_Ch6 is
             --  predicate may come from an explicit aspect of be inherited.
 
             elsif Has_Predicates (T) then
-               Insert_List_Before_And_Analyze (Decl,
+               Insert_List_After_And_Analyze (Decl,
                  Freeze_Entity (Defining_Identifier (Decl), N));
             end if;