Blame m4/builtin-expect.m4

Packit Service c30d13
dnl Check for __builtin_expect.
Packit Service c30d13
Packit Service c30d13
dnl Copyright 2016-2018 Free Software Foundation, Inc.
Packit Service c30d13
dnl This file is free software; the Free Software Foundation
Packit Service c30d13
dnl gives unlimited permission to copy and/or distribute it,
Packit Service c30d13
dnl with or without modifications, as long as this notice is preserved.
Packit Service c30d13
Packit Service c30d13
dnl Written by Paul Eggert.
Packit Service c30d13
Packit Service c30d13
AC_DEFUN([gl___BUILTIN_EXPECT],
Packit Service c30d13
[
Packit Service c30d13
  AC_CACHE_CHECK([for __builtin_expect],
Packit Service c30d13
    [gl_cv___builtin_expect],
Packit Service c30d13
    [AC_LINK_IFELSE(
Packit Service c30d13
       [AC_LANG_SOURCE([[
Packit Service c30d13
         int
Packit Service c30d13
         main (int argc, char **argv)
Packit Service c30d13
         {
Packit Service c30d13
           argc = __builtin_expect (argc, 100);
Packit Service c30d13
           return argv[argc != 100][0];
Packit Service c30d13
         }]])],
Packit Service c30d13
       [gl_cv___builtin_expect=yes],
Packit Service c30d13
       [AC_LINK_IFELSE(
Packit Service c30d13
          [AC_LANG_SOURCE([[
Packit Service c30d13
             #include <builtins.h>
Packit Service c30d13
             int
Packit Service c30d13
             main (int argc, char **argv)
Packit Service c30d13
             {
Packit Service c30d13
               argc = __builtin_expect (argc, 100);
Packit Service c30d13
               return argv[argc != 100][0];
Packit Service c30d13
             }]])],
Packit Service c30d13
          [gl_cv___builtin_expect="in <builtins.h>"],
Packit Service c30d13
          [gl_cv___builtin_expect=no])])])
Packit Service c30d13
  if test "$gl_cv___builtin_expect" = yes; then
Packit Service c30d13
    AC_DEFINE([HAVE___BUILTIN_EXPECT], [1])
Packit Service c30d13
  elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then
Packit Service c30d13
    AC_DEFINE([HAVE___BUILTIN_EXPECT], [2])
Packit Service c30d13
  fi
Packit Service c30d13
  AH_VERBATIM([HAVE___BUILTIN_EXPECT],
Packit Service c30d13
    [/* Define to 1 if the compiler supports __builtin_expect,
Packit Service c30d13
   and to 2 if <builtins.h> does.  */
Packit Service c30d13
#undef HAVE___BUILTIN_EXPECT
Packit Service c30d13
#ifndef HAVE___BUILTIN_EXPECT
Packit Service c30d13
# define __builtin_expect(e, c) (e)
Packit Service c30d13
#elif HAVE___BUILTIN_EXPECT == 2
Packit Service c30d13
# include <builtins.h>
Packit Service c30d13
#endif
Packit Service c30d13
    ])
Packit Service c30d13
])