File: ruby_check_builtin_overflow.m4

package info (click to toggle)
ruby3.4 3.4.5-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 154,784 kB
  • sloc: ruby: 1,259,653; ansic: 829,955; yacc: 28,233; pascal: 7,359; sh: 3,864; python: 1,799; cpp: 1,158; asm: 808; makefile: 801; javascript: 414; lisp: 109; perl: 62; awk: 36; sed: 4; xml: 4
file content (28 lines) | stat: -rw-r--r-- 878 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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