1dnl Check for __builtin_expect. 2 3dnl Copyright 2016-2021 Free Software Foundation, Inc. 4dnl This file is free software; the Free Software Foundation 5dnl gives unlimited permission to copy and/or distribute it, 6dnl with or without modifications, as long as this notice is preserved. 7 8dnl Written by Paul Eggert. 9 10AC_DEFUN([gl___BUILTIN_EXPECT], 11[ 12 AC_CACHE_CHECK([for __builtin_expect], 13 [gl_cv___builtin_expect], 14 [AC_LINK_IFELSE( 15 [AC_LANG_SOURCE([[ 16 int 17 main (int argc, char **argv) 18 { 19 argc = __builtin_expect (argc, 100); 20 return argv[argc != 100][0]; 21 }]])], 22 [gl_cv___builtin_expect=yes], 23 [AC_LINK_IFELSE( 24 [AC_LANG_SOURCE([[ 25 #include <builtins.h> 26 int 27 main (int argc, char **argv) 28 { 29 argc = __builtin_expect (argc, 100); 30 return argv[argc != 100][0]; 31 }]])], 32 [gl_cv___builtin_expect="in <builtins.h>"], 33 [gl_cv___builtin_expect=no])])]) 34 if test "$gl_cv___builtin_expect" = yes; then 35 AC_DEFINE([HAVE___BUILTIN_EXPECT], [1]) 36 elif test "$gl_cv___builtin_expect" = "in <builtins.h>"; then 37 AC_DEFINE([HAVE___BUILTIN_EXPECT], [2]) 38 fi 39 AH_VERBATIM([HAVE___BUILTIN_EXPECT], 40 [/* Define to 1 if the compiler supports __builtin_expect, 41 and to 2 if <builtins.h> does. */ 42#undef HAVE___BUILTIN_EXPECT 43#ifndef HAVE___BUILTIN_EXPECT 44# define __builtin_expect(e, c) (e) 45#elif HAVE___BUILTIN_EXPECT == 2 46# include <builtins.h> 47#endif 48 ]) 49]) 50