Blame m4/builtin-expect.m4

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