aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2018-11-19 09:47:36 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2018-11-19 09:47:36 +0000
commitad0c3dd296a1c177982cf56d1abfd044b3ea3f96 (patch)
treeda60225e771bb3ee822359a786fd4f4299fd52aa /gcc
parent4ef3890074446d4ad7dcf60a538ca0c56e887804 (diff)
downloadgcc-ad0c3dd296a1c177982cf56d1abfd044b3ea3f96.zip
gcc-ad0c3dd296a1c177982cf56d1abfd044b3ea3f96.tar.gz
gcc-ad0c3dd296a1c177982cf56d1abfd044b3ea3f96.tar.bz2
* gcc-interface/cuintp.c (UI_From_gnu): Remove code for 32-bit hosts.
From-SVN: r266265
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog14
-rw-r--r--gcc/ada/gcc-interface/cuintp.c26
2 files changed, 17 insertions, 23 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 589f52f..082fe5a 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,12 @@
+2018-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/cuintp.c (UI_From_gnu): Remove code for 32-bit hosts.
+
+2018-11-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the switch
+ -fnon-call-exceptions passed on the command line in -gnatp mode.
+
2018-11-14 Ed Schonberg <schonberg@adacore.com>
* exp_util.ads, exp_util.adb: Change the profile of
@@ -7,11 +16,6 @@
* exp_ch4.adb (Expand_Boolean_Operation): Use this new profile.
* exp_pakd.adb (Expand_Packed_Boolean_Operator): Ditto.
-2018-11-15 Eric Botcazou <ebotcazou@adacore.com>
-
- * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the switch
- -fnon-call-exceptions passed on the command line in -gnatp mode.
-
2018-11-14 Patrick Bernardi <bernardi@adacore.com>
* libgnarl/a-intnam__linux.ads: Add SIGSYS.
diff --git a/gcc/ada/gcc-interface/cuintp.c b/gcc/ada/gcc-interface/cuintp.c
index a22662e..420686c 100644
--- a/gcc/ada/gcc-interface/cuintp.c
+++ b/gcc/ada/gcc-interface/cuintp.c
@@ -142,13 +142,16 @@ UI_From_gnu (tree Input)
/* UI_Base is defined so that 5 Uint digits is sufficient to hold the
largest possible signed 64-bit value. */
const int Max_For_Dint = 5;
- int v[Max_For_Dint], i;
+ int v[Max_For_Dint];
Vector_Template temp;
Int_Vector vec;
-#if HOST_BITS_PER_WIDE_INT == 64
- /* On 64-bit hosts, tree_fits_shwi_p tells whether the input fits in a
- signed 64-bit integer. Then a truncation tells whether it fits
+#if HOST_BITS_PER_WIDE_INT < 64
+#error unsupported HOST_BITS_PER_WIDE_INT setting
+#endif
+
+ /* On 64-bit hosts, tree_fits_shwi_p tells whether the input fits in
+ a signed 64-bit integer. Then a truncation tells whether it fits
in a signed 32-bit integer. */
if (tree_fits_shwi_p (Input))
{
@@ -158,24 +161,11 @@ UI_From_gnu (tree Input)
}
else
return No_Uint;
-#else
- /* On 32-bit hosts, tree_fits_shwi_p tells whether the input fits in a
- signed 32-bit integer. Then a sign test tells whether it fits
- in a signed 64-bit integer. */
- if (tree_fits_shwi_p (Input))
- return UI_From_Int (tree_to_shwi (Input));
-
- gcc_assert (TYPE_PRECISION (gnu_type) <= 64);
- if (TYPE_UNSIGNED (gnu_type)
- && TYPE_PRECISION (gnu_type) == 64
- && wi::neg_p (Input, SIGNED))
- return No_Uint;
-#endif
gnu_base = build_int_cst (gnu_type, UI_Base);
gnu_temp = Input;
- for (i = Max_For_Dint - 1; i >= 0; i--)
+ for (int i = Max_For_Dint - 1; i >= 0; i--)
{
v[i] = tree_to_shwi (fold_build1 (ABS_EXPR, gnu_type,
fold_build2 (TRUNC_MOD_EXPR, gnu_type,