Blame gl/m4/builtin-expect.m4

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