re PR ada/70759 (Ada rts fails to build with -mabi=ilp32)

PR ada/70759
	* stor-layout.h (internal_reference_types): Delete.
	* stor-layout.c (reference_types_internal): Likewise.
	(internal_reference_types): Likewise.
	(layout_type) <REFERENCE_TYPE>: Adjust.
ada/
	* gcc-interface/misc.c (gnat_init): Do not call
	internal_reference_types.

From-SVN: r235472
This commit is contained in:
Eric Botcazou 2016-04-27 07:49:49 +00:00 committed by Eric Botcazou
parent 9364c30e32
commit 06aed101fc
5 changed files with 13 additions and 24 deletions

View File

@ -1,3 +1,11 @@
2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
PR ada/70759
* stor-layout.h (internal_reference_types): Delete.
* stor-layout.c (reference_types_internal): Likewise.
(internal_reference_types): Likewise.
(layout_type) <REFERENCE_TYPE>: Adjust.
2016-04-27 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/70683

View File

@ -1,3 +1,8 @@
2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/misc.c (gnat_init): Do not call
internal_reference_types.
2016-04-27 Svante Signell <svante.signell@gmail.com>
* gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.

View File

@ -369,9 +369,6 @@ gnat_init (void)
sbitsize_one_node = sbitsize_int (1);
sbitsize_unit_node = sbitsize_int (BITS_PER_UNIT);
/* Show that REFERENCE_TYPEs are internal and should be Pmode. */
internal_reference_types ();
/* Register our internal error function. */
global_dc->internal_error = &internal_error_function;

View File

@ -49,11 +49,6 @@ tree sizetype_tab[(int) stk_type_kind_last];
The value is measured in bits. */
unsigned int maximum_field_alignment = TARGET_DEFAULT_PACK_STRUCT * BITS_PER_UNIT;
/* Nonzero if all REFERENCE_TYPEs are internal and hence should be allocated
in the address spaces' address_mode, not pointer_mode. Set only by
internal_reference_types called only by a front end. */
static int reference_types_internal = 0;
static tree self_referential_size (tree);
static void finalize_record_size (record_layout_info);
static void finalize_type_size (tree);
@ -62,15 +57,6 @@ static int excess_unit_span (HOST_WIDE_INT, HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, tree);
extern void debug_rli (record_layout_info);
/* Show that REFERENCE_TYPES are internal and should use address_mode.
Called only by front end. */
void
internal_reference_types (void)
{
reference_types_internal = 1;
}
/* Given a size SIZE that may not be a constant, return a SAVE_EXPR
to serve as the actual size-expression for a type or decl. */
@ -2245,12 +2231,6 @@ layout_type (tree type)
case REFERENCE_TYPE:
{
machine_mode mode = TYPE_MODE (type);
if (TREE_CODE (type) == REFERENCE_TYPE && reference_types_internal)
{
addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (type));
mode = targetm.addr_space.address_mode (as);
}
TYPE_SIZE (type) = bitsize_int (GET_MODE_BITSIZE (mode));
TYPE_SIZE_UNIT (type) = size_int (GET_MODE_SIZE (mode));
TYPE_UNSIGNED (type) = 1;

View File

@ -22,7 +22,6 @@ along with GCC; see the file COPYING3. If not see
extern void set_min_and_max_values_for_integral_type (tree, int, signop);
extern void fixup_signed_type (tree);
extern void internal_reference_types (void);
extern unsigned int update_alignment_for_field (record_layout_info, tree,
unsigned int);
extern record_layout_info start_record_layout (tree);