diff --git a/configure.in b/configure.in index 46dd5f1d2ef..763bfbde268 100644 --- a/configure.in +++ b/configure.in @@ -1136,6 +1136,19 @@ AC_MSG_RESULT($usable_wchar_t) # check for endianness AC_C_BIGENDIAN +# Check whether right shifting a negative integer extends the sign bit +# or fills with zeros (like the Cray J90, according to Tim Peters). +AC_MSG_CHECKING(whether right shift extends the sign bit) +AC_TRY_RUN([ +int main() +{ + return ((-1)>>3 == -1) ? 1 : 0; +} +], +[AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS) + AC_MSG_RESULT(yes)], +[AC_MSG_RESULT(no)]) + # THIS MUST BE LAST, IT CAN BREAK OTHER TESTS! # Add sys/socket.h to confdefs.h cat >> confdefs.h <<\EOF