diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6afb823f9e9..c6159e6b501 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2015-01-06 Olivier Hainque + + * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): When + constructing a ref to variable, update inner_const_flag from the + variable TREE_READONLY attribute. + * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Remove default + definition. + (get_target_float_size): Remove. + (get_target_double_size): Remove. + (get_target_long_double_size): Remove. + 2015-01-06 Pascal Obry * adaint.c (ProcListEvt): Set to NULL. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index fda3f0cc63e..b6df1ae79ef 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -1415,6 +1415,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) gnu_size = NULL_TREE; used_by_ref = true; + inner_const_flag = TREE_READONLY (gnu_unc_var); const_flag = true; } diff --git a/gcc/ada/gcc-interface/targtyps.c b/gcc/ada/gcc-interface/targtyps.c index cfc45e7fe16..851d5f7e374 100644 --- a/gcc/ada/gcc-interface/targtyps.c +++ b/gcc/ada/gcc-interface/targtyps.c @@ -6,7 +6,7 @@ * * * Body * * * - * Copyright (C) 1992-2012, Free Software Foundation, Inc. * + * Copyright (C) 1992-2014, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -54,15 +54,6 @@ #define ADA_LONG_TYPE_SIZE LONG_TYPE_SIZE #endif -/* If we don't have a target definition of WIDEST_HARDWARE_FP_SIZE, assume - DOUBLE_TYPE_SIZE. We used to default to LONG_DOUBLE_TYPE_SIZE, which now - most often maps 128 bits implemented with very inefficient software - emulations so is incorrect as a hardware size estimate. */ - -#ifndef WIDEST_HARDWARE_FP_SIZE -#define WIDEST_HARDWARE_FP_SIZE DOUBLE_TYPE_SIZE -#endif - /* The following provide a functional interface for the front end Ada code to determine the sizes that are used for various C types. */ @@ -115,24 +106,6 @@ get_target_long_long_size (void) return LONG_LONG_TYPE_SIZE; } -Pos -get_target_float_size (void) -{ - return fp_prec_to_size (FLOAT_TYPE_SIZE); -} - -Pos -get_target_double_size (void) -{ - return fp_prec_to_size (DOUBLE_TYPE_SIZE); -} - -Pos -get_target_long_double_size (void) -{ - return fp_prec_to_size (WIDEST_HARDWARE_FP_SIZE); -} - Pos get_target_pointer_size (void) {