Commit fac51974 by Eric Botcazou Committed by Eric Botcazou

re PR ada/82127 (gnat.dg/specs/constructor.ads FAILs)

	PR ada/82127
	* gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields
	in order of increasing position in more cases.

From-SVN: r251846
parent 9cb22eea
2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
PR ada/82127
* gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields
in order of increasing position in more cases.
2017-09-07 Yannick Moy <moy@adacore.com> 2017-09-07 Yannick Moy <moy@adacore.com>
* a-exetim-mingw.ads: Add contract Global=>null * a-exetim-mingw.ads: Add contract Global=>null
......
...@@ -9530,12 +9530,10 @@ copy_and_substitute_in_layout (Entity_Id gnat_new_type, ...@@ -9530,12 +9530,10 @@ copy_and_substitute_in_layout (Entity_Id gnat_new_type,
save_gnu_tree (gnat_field, gnu_field, false); save_gnu_tree (gnat_field, gnu_field, false);
} }
/* If there is a variant list, a selected variant and the fields all have a /* If there is no variant list or a selected variant and the fields all have
constant position, put them in order of increasing position to match that constant position, put them in order of increasing position to match that
of constant CONSTRUCTORs. Likewise if there is no variant list but a REP of constant CONSTRUCTORs. */
part, since the latter has been flattened in the process. */ if ((!gnu_variant_list.exists () || selected_variant) && all_constant_pos)
if ((gnu_variant_list.exists () ? selected_variant : gnu_rep_part != NULL)
&& all_constant_pos)
{ {
const int len = list_length (gnu_field_list); const int len = list_length (gnu_field_list);
tree *field_arr = XALLOCAVEC (tree, len), t = gnu_field_list; tree *field_arr = XALLOCAVEC (tree, len), t = gnu_field_list;
......
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