29 lines
878 B
Plaintext
29 lines
878 B
Plaintext
dnl -*- Autoconf -*-
|
|
AC_DEFUN([RUBY_CHECK_BUILTIN_OVERFLOW], [dnl
|
|
{ # $0($1)
|
|
RUBY_CHECK_BUILTIN_FUNC(__builtin_[$1]_overflow, [int x;__builtin_[$1]_overflow(0,0,&x)])
|
|
RUBY_CHECK_BUILTIN_FUNC(__builtin_[$1]_overflow_p, [__builtin_[$1]_overflow_p(0,0,(int)0)])
|
|
|
|
AS_IF([test "$rb_cv_builtin___builtin_[$1]_overflow" != no], [
|
|
AC_CACHE_CHECK(for __builtin_[$1]_overflow with long long arguments, rb_cv_use___builtin_[$1]_overflow_long_long, [
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
|
@%:@pragma clang optimize off
|
|
|
|
int
|
|
main(void)
|
|
{
|
|
long long x = 0, y;
|
|
__builtin_$1_overflow(x, x, &y);
|
|
|
|
return 0;
|
|
}
|
|
]])],
|
|
rb_cv_use___builtin_[$1]_overflow_long_long=yes,
|
|
rb_cv_use___builtin_[$1]_overflow_long_long=no)])
|
|
])
|
|
AS_IF([test "$rb_cv_use___builtin_[$1]_overflow_long_long" = yes], [
|
|
AC_DEFINE(USE___BUILTIN_[]AS_TR_CPP($1)_OVERFLOW_LONG_LONG, 1)
|
|
])
|
|
}
|
|
])dnl
|