Small tweak to gnat_to_gnu_param

We mark the type of In parameters in Ada with the const qualifier, but
it is stripped by free_lang_data_in_type so do not do it in LTO mode.

	* gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant
	of the type in LTO mode.
This commit is contained in:
Eric Botcazou 2020-05-08 16:36:53 +02:00
parent 2b42509f8b
commit db4062a0cb
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
the type in LTO mode.
2020-05-04 Mikael Pettersson <mikpelinux@gmail.com>
PR bootstrap/94918

View File

@ -5327,9 +5327,12 @@ gnat_to_gnu_param (Entity_Id gnat_param, tree gnu_param_type, bool first,
}
/* If this is a read-only parameter, make a variant of the type that is
read-only. ??? However, if this is a self-referential type, the type
read-only, except in LTO mode because free_lang_data_in_type would
undo it. ??? However, if this is a self-referential type, the type
can be very complex, so skip it for now. */
if (ro_param && !CONTAINS_PLACEHOLDER_P (TYPE_SIZE (gnu_param_type)))
if (ro_param
&& !flag_generate_lto
&& !CONTAINS_PLACEHOLDER_P (TYPE_SIZE (gnu_param_type)))
gnu_param_type = change_qualified_type (gnu_param_type, TYPE_QUAL_CONST);
/* For foreign conventions, pass arrays as pointers to the element type.