This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH][2/n] Always 64bit-HWI cleanups
- From: Jeff Law <law at redhat dot com>
- To: Richard Biener <rguenther at suse dot de>, gcc-patches at gcc dot gnu dot org
- Date: Fri, 23 May 2014 11:57:24 -0600
- Subject: Re: [PATCH][2/n] Always 64bit-HWI cleanups
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot LSU dot 2 dot 11 dot 1405231333180 dot 2632 at zhemvz dot fhfr dot qr>
On 05/23/14 05:45, Richard Biener wrote:
The following changes the configury to insist on [u]int64_t being
available and removes the very old __int64 case. Autoconf doesn't
check for it, support came in via a big merge in Dec 2002, r60174,
and it was never used on the libcpp side until I fixed that with
the last patch of this series, so we couldn't have relied on it
at least since libcpp was introduced.
Both libcpp and vmsdbg.h now use [u]int64_t, switching HOST_WIDE_INT
to literally use int64_t has to be done with the grand renaming of
all users due to us using 'unsigned HOST_WIDE_INT'.
Btw, I couldn't find any "standard" way of writing
[u]int64_t literals (substitution for HOST_WIDE_INT_C) nor
one for printf formats (substitutions for HOST_WIDE_INT_PRINT
and friends). I'll consider doing s/HOST_WIDE_INT/[U]INT64/
there if nobody comes up with a better plan.
Unfortunately any followup will be the whole renaming game
at once due to the 'unsigned' issue. I'll make sure to
propose a hwint.h-only patch with a renaming guide for
review and expect the actual renaming to take place using
Bootstrap and regtest running on x86_64-unknown-linux-gnu, ok?
After this patch you may use [u]int64_t freely in host sources
(lto-plugin already does that - heh).
2014-05-23 Richard Biener <email@example.com>
* configure.ac: Remove long long and __int64 type checks,
add check for uint64_t and fail if that wasn't found.
* include/cpplib.h (cpp_num_part): Use uint64_t.
* config.in: Regenerate.
* configure: Likewise.
* configure.ac: Drop __int64 type check. Insist that we
found uint64_t and int64_t.
* hwint.h (HOST_BITS_PER___INT64): Remove.
(HOST_BITS_PER_WIDE_INT): Define to 64 and remove
(HOST_WIDE_INT_PRINT_*): Remove 32bit case.
(HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
(HOST_WIDEST_FAST_INT): Remove __int64 case.
* vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
* configure: Regenerate.
* config.in: Likewise.