aboutsummaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2019-07-22 13:58:19 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-07-22 13:58:19 +0000
commit8113b0c7385727d9969db2c8420bc0a3d6b8f0ed (patch)
tree7867ec78d1a4964669ee03eb5e1741a1e0834d03 /libiberty
parentc936411fab42b991839ce8cd95a5d883867f9466 (diff)
downloadgcc-8113b0c7385727d9969db2c8420bc0a3d6b8f0ed.zip
gcc-8113b0c7385727d9969db2c8420bc0a3d6b8f0ed.tar.gz
gcc-8113b0c7385727d9969db2c8420bc0a3d6b8f0ed.tar.bz2
[Ada] Overhaul code implementing conversions involving fixed-point types
This ovehauls the code implementing conversions involving fixed-point types in the front-end because it leaks the Do_Range_Check flag in several places to the back-end, which is a violation of the documented interface between front-end and back-end. This also does a bit of housekeeping work throughout it in the process. There should be essentially no functional changes. 2019-07-22 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * checks.adb (Apply_Type_Conversion_Checks): Do not set Do_Range_Check flag on conversions from fixed-point types either. * exp_attr.adb: Add use and with clause for Expander. (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set the Conversion_OK flag and do not generate overflow/range checks manually. * exp_ch4.adb (Expand_N_Qualified_Expression): Remove superfluous clearing of Do_Range_Check flag. (Discrete_Range_Check): New procedure to generate a range check for discrete types. (Real_Range_Check): Remove redundant local variable and adjust. Remove useless shortcut. Clear Do_Range_Check flag on all paths. (Expand_N_Type_Conversion): Remove redundant test on Conversion_OK. Call Discrete_Range_Check to generate range checks on discrete types. Remove obsolete code for float-to-integer conversions. Add code to generate range checks for conversions involving fixed-point types. From-SVN: r273692
Diffstat (limited to 'libiberty')
0 files changed, 0 insertions, 0 deletions