xref: /netbsd-src/external/gpl2/diffutils/dist/m4/longlong.m4 (revision 75f6d617e282811cb173c2ccfbf5df0dd71f7045)
1*75f6d617Schristos#serial 2
2*75f6d617Schristos
3*75f6d617Schristosdnl From Paul Eggert.
4*75f6d617Schristos
5*75f6d617Schristos# Define HAVE_LONG_LONG if 'long long' works.
6*75f6d617Schristos
7*75f6d617SchristosAC_DEFUN([jm_AC_TYPE_LONG_LONG],
8*75f6d617Schristos[
9*75f6d617Schristos  AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
10*75f6d617Schristos  [AC_TRY_LINK([long long ll = 1; int i = 63;],
11*75f6d617Schristos    [long long llmax = (long long) -1;
12*75f6d617Schristos     return ll << i | ll >> i | llmax / ll | llmax % ll;],
13*75f6d617Schristos    ac_cv_type_long_long=yes,
14*75f6d617Schristos    ac_cv_type_long_long=no)])
15*75f6d617Schristos  if test $ac_cv_type_long_long = yes; then
16*75f6d617Schristos    AC_DEFINE(HAVE_LONG_LONG, 1,
17*75f6d617Schristos      [Define if you have the long long type.])
18*75f6d617Schristos  fi
19*75f6d617Schristos])
20*75f6d617Schristos
21*75f6d617Schristos# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
22*75f6d617Schristos
23*75f6d617SchristosAC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
24*75f6d617Schristos[
25*75f6d617Schristos  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
26*75f6d617Schristos  [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
27*75f6d617Schristos    [unsigned long long ullmax = (unsigned long long) -1;
28*75f6d617Schristos     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
29*75f6d617Schristos    ac_cv_type_unsigned_long_long=yes,
30*75f6d617Schristos    ac_cv_type_unsigned_long_long=no)])
31*75f6d617Schristos  if test $ac_cv_type_unsigned_long_long = yes; then
32*75f6d617Schristos    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
33*75f6d617Schristos      [Define if you have the unsigned long long type.])
34*75f6d617Schristos  fi
35*75f6d617Schristos])
36