Commit dfdd3de1 by Eric Botcazou Committed by Pierre-Marie de Rodat

[Ada] Fix awkward placement of freeze node for actual subtype

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
parent ab9e2084
2019-10-10 Eric Botcazou <ebotcazou@adacore.com> 2019-10-10 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Do not use * sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the
the Esize of the component to compute its layout, but only the actual subtype after its declaration when the type of the formal
Component_Clause. Do not issue a warning for the _Tag has a predicate.
component. Also set the Esize of the component at the end of \ No newline at end of file
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
...@@ -12038,7 +12038,7 @@ package body Sem_Ch6 is ...@@ -12038,7 +12038,7 @@ package body Sem_Ch6 is
-- predicate may come from an explicit aspect of be inherited. -- predicate may come from an explicit aspect of be inherited.
elsif Has_Predicates (T) then elsif Has_Predicates (T) then
Insert_List_Before_And_Analyze (Decl, Insert_List_After_And_Analyze (Decl,
Freeze_Entity (Defining_Identifier (Decl), N)); Freeze_Entity (Defining_Identifier (Decl), N));
end if; end if;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment