diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2018-11-19 09:47:36 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2018-11-19 09:47:36 +0000 |
commit | ad0c3dd296a1c177982cf56d1abfd044b3ea3f96 (patch) | |
tree | da60225e771bb3ee822359a786fd4f4299fd52aa /gcc | |
parent | 4ef3890074446d4ad7dcf60a538ca0c56e887804 (diff) | |
download | gcc-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/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/cuintp.c | 26 |
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, |