diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-21 18:32:23 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-21 18:32:23 +0000 |
commit | 473bcb8e6989069c0c201b204a03f5af1143f9f4 (patch) | |
tree | c428c7e73d5606ac395dd73b9723b83e18d58202 /gcc | |
parent | a3eced2addbc6c7c5cc09609fb7965d597744153 (diff) | |
download | gcc-473bcb8e6989069c0c201b204a03f5af1143f9f4.tar.gz |
gcc/
* system.h: Move hwint.h include further down.
* hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add
gcc_checking_asserts.
* hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203906 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/hwint.c | 32 | ||||
-rw-r--r-- | gcc/hwint.h | 14 | ||||
-rw-r--r-- | gcc/system.h | 6 |
4 files changed, 15 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e839517732c..e34ff7bd92f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-10-21 Richard Sandiford <rdsandiford@googlemail.com> + + * system.h: Move hwint.h include further down. + * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add + gcc_checking_asserts. + * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions. + 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix volatile issues in optimize_bit_field_compare. diff --git a/gcc/hwint.c b/gcc/hwint.c index 9e99dd99e0b..f47be4ac5f5 100644 --- a/gcc/hwint.c +++ b/gcc/hwint.c @@ -204,35 +204,3 @@ least_common_multiple (HOST_WIDE_INT a, HOST_WIDE_INT b) { return mul_hwi (abs_hwi (a) / gcd (a, b), abs_hwi (b)); } - -#ifdef ENABLE_CHECKING -/* Sign extend SRC starting from PREC. */ - -HOST_WIDE_INT -sext_hwi (HOST_WIDE_INT src, unsigned int prec) -{ - gcc_checking_assert (prec <= HOST_BITS_PER_WIDE_INT); - - if (prec == HOST_BITS_PER_WIDE_INT) - return src; - else - { - int shift = HOST_BITS_PER_WIDE_INT - prec; - return (src << shift) >> shift; - } -} - -/* Zero extend SRC starting from PREC. */ - -unsigned HOST_WIDE_INT -zext_hwi (unsigned HOST_WIDE_INT src, unsigned int prec) -{ - gcc_checking_assert (prec <= HOST_BITS_PER_WIDE_INT); - - if (prec == HOST_BITS_PER_WIDE_INT) - return src; - else - return src & (((HOST_WIDE_INT)1 << prec) - 1); -} - -#endif diff --git a/gcc/hwint.h b/gcc/hwint.h index d2c2ec377b0..77ae64224f7 100644 --- a/gcc/hwint.h +++ b/gcc/hwint.h @@ -322,9 +322,6 @@ extern HOST_WIDE_INT least_common_multiple (HOST_WIDE_INT, HOST_WIDE_INT); /* Sign extend SRC starting from PREC. */ -#ifdef ENABLE_CHECKING -extern HOST_WIDE_INT sext_hwi (HOST_WIDE_INT, unsigned int); -#else static inline HOST_WIDE_INT sext_hwi (HOST_WIDE_INT src, unsigned int prec) { @@ -332,24 +329,23 @@ sext_hwi (HOST_WIDE_INT src, unsigned int prec) return src; else { + gcc_checking_assert (prec < HOST_BITS_PER_WIDE_INT); int shift = HOST_BITS_PER_WIDE_INT - prec; return (src << shift) >> shift; } } -#endif /* Zero extend SRC starting from PREC. */ -#ifdef ENABLE_CHECKING -extern unsigned HOST_WIDE_INT zext_hwi (unsigned HOST_WIDE_INT, unsigned int); -#else static inline unsigned HOST_WIDE_INT zext_hwi (unsigned HOST_WIDE_INT src, unsigned int prec) { if (prec == HOST_BITS_PER_WIDE_INT) return src; else - return src & (((HOST_WIDE_INT)1 << prec) - 1); + { + gcc_checking_assert (prec < HOST_BITS_PER_WIDE_INT); + return src & (((HOST_WIDE_INT) 1 << prec) - 1); + } } -#endif #endif /* ! GCC_HWINT_H */ diff --git a/gcc/system.h b/gcc/system.h index ce817d4ec96..a1fc6de5db5 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -273,9 +273,6 @@ extern int errno; # include <limits.h> #endif -/* Get definitions of HOST_WIDE_INT and HOST_WIDEST_INT. */ -#include "hwint.h" - /* A macro to determine whether a VALUE lies inclusively within a certain range without evaluating the VALUE more than once. This macro won't warn if the VALUE is unsigned and the LOWER bound is @@ -1063,4 +1060,7 @@ helper_const_non_const_cast (const char *p) #define DEBUG_VARIABLE #endif +/* Get definitions of HOST_WIDE_INT and HOST_WIDEST_INT. */ +#include "hwint.h" + #endif /* ! GCC_SYSTEM_H */ |